【发布时间】:2023-02-16 17:08:55
【问题描述】:
我正在尝试解决以下问题:
首先,根据提供给资源的列表条目创建资源。下面是 tf 代码,我已经为它写了:
resource "azurerm_key_vault" "application_key_vault" {
foreach = toset(var.app_names)
name = "${each.value}-kv"
resource_group_name = azurerm_resource_group.aks_resource_group.name
location = var.location
tenant_id = local.tenant_id
sku_name = "standard"
dynamic "contact" {
for_each = var.key_vault_contact_emails
content {
email = contact.value
}
}
network_acls {
default_action = "Deny"
bypass = "AzureServices"
virtual_network_subnet_ids = local.key_vault_allowed_subnets_set
}
tags = local.all_tags
depends_on = [azurerm_resource_group.aks_resource_group]
}
现在,假设“app_names”具有值 [“app1”、“app2”、“app3”]。并且创建的 keyvaults 有 ids ["id1", "id2", "id3"]。 有没有一种方法可以动态创建上面的地图,它看起来像这样:
{
"app1" : "id1",
"app2" : "id2",
"app3" : "id3",
}
我尝试使用类似这样的“输出”,但无法弄清楚我应该如何获取用于创建每个 keyvault 的 app_name:
output "application_app_name_by_key_vault_id_map" {
value = { for akv in azurerm_key_vault.application_key_vault : <not sure how to get app_name here> => akv.id }
}
【问题讨论】:
标签: terraform terraform-provider-azure azure-rm