首页 > 解决方案 > 使用服务原则跨多个订阅部署 terraform 资源

问题描述

我有一个单一的服务原则。由于我的 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
          }  

标签: terraform-provider-azureazure-rm

解决方案


为了允许我们在多个订阅中创建资源,您可以通过使用aliases来使用多个 AzureRM 提供程序。您还可以在提供程序块中定义 SP 身份验证。然后你可以在特定的提供者中声明你的资源。

例如,使用别名vnetazurerm 提供程序在该订阅中创建资源组。

resource "azurerm_resource_group" "test" {
  provider = "azurerm.vnet"
  name     = var.rgname                   
  location = var.location  
}

在此处阅读更多详细信息。


推荐阅读