首页 > 解决方案 > 是否可以动态创建“azurerm”提供程序?

问题描述

我想从变量列表中创建多个 azure_rm 提供程序。尝试使用“计数”是不可能的,我收到了“保留以备将来使用”的消息。

从技术上讲,我想动态创建的部分是:

provider "azurerm" {  
  features {}
  subscription_id = "1d1a56ed-681f-xxxx-xxxx-xxxxxxxxxxxx"
  alias = "spoke1"
}

我也尝试了 for_each,但也不可能,因为 for_each 只创建一个部分,而不是一个完整的“提供者”部分。

# To improve... try to use dynamic block
# It looks to be not possible. Could be necessary to auto-generate this scetion with external script
# provider "azurerm" {  
#   features {}
#   dynamic "spoke" {
#     for_each = var.spoke_networks
#     content {
#       subscription_id = spoke.value["subscription_id"]
#       alias = spoke.value["subscription_alias"]
#     }
#   }
# }

我想要实现的是只为我的变量(spoke_networks)提供一个新条目,然后 terraform 创建一个新的提供者。变量文件结构应该是这样的:

variable "spoke_networks" {
    description = "List with the properties of the Spoke VNETs"
    type        = list(object({subscription_alias=string ,subscription_id=string , resource_group_name=string , vnet_name=string }))
}

谢谢你,VS

标签: terraformterraform-provider-azure

解决方案


你不能用terraform. 但也许你可以用terragrunt做到这一点。


推荐阅读