straight-hair-32184
05/06/2025, 1:30 PMusing Pulumi;
using Pulumi.AzureNative.Resources;
class MyStack : Stack
{
public MyStack()
{
// Define the first Azure provider for Subscription 1
var provider1 = new Pulumi.AzureNative.Provider("provider1", new Pulumi.AzureNative.ProviderArgs
{
SubscriptionId = "your-subscription-id-1"
});
// Define the second Azure provider for Subscription 2
var provider2 = new Pulumi.AzureNative.Provider("provider2", new Pulumi.AzureNative.ProviderArgs
{
SubscriptionId = "your-subscription-id-2"
});
var component = new MyComponent("test", new() { }, new ComponentResourceOptions
{
Providers = {
provider1,
provider2
}
});
}
}
class MyComponent : ComponentResource
{
public MyComponent(string name, ComponentResourceOptions options)
: base("my:module:MyComponent", name, options)
{
// Accessing providers from ComponentResourceOptions
if (options?.Providers != null)
{
ProviderResource provider1 = null;
ProviderResource provider2 = null;
foreach (var p in options.Providers)
{
p.Urn.Apply(u =>
{
if (u.EndsWith("provider1 "))
{
provider1 = p;
}
else if (u.EndsWith("provider2"))
{
provider2 = p;
}
return u;
});
}
// Create a Resource Group in Subscription 1
var rg1 = new ResourceGroup("rg1", new ResourceGroupArgs
{
ResourceGroupName = "rg1"
}, new CustomResourceOptions
{
Provider = provider1
});
// Create a Resource Group in Subscription 2
var rg2 = new ResourceGroup("rg2", new ResourceGroupArgs
{
ResourceGroupName = "rg2"
}, new CustomResourceOptions
{
Provider = provider2
});
}
}
}