问题描述
我有一个单一的服务原则。由于我的terraform代码需要访问订阅A和订阅B中存在的资源,因此我该如何执行,下面是我的提供者块。
provider "azurerm" {
features {}
}
provider "azurerm" {
alias = "vnet"
subscription_id = "0000"
features {}
}
data "azurerm_private_dns_zone" "foo" {
provider = azurerm.vnet
name = var.private_dnszonename
resource_group_name = var.existing_dnsresourcegroup
}
解决方法
要允许我们在多个订阅中创建资源,您可以使用别名使用多个AzureRM提供程序。您也可以在提供程序块中定义SP身份验证。然后,您可以在特定的提供程序中声明资源。
例如,要在该订阅中使用别名vnet
azurerm提供程序创建资源组。
resource "azurerm_resource_group" "test" {
provider = "azurerm.vnet"
name = var.rgname
location = var.location
}
了解更多详细信息,here。