gpt4 book ai didi

azure - 为映射中的每个值创建资源

转载 作者:行者123 更新时间:2023-12-03 02:12:00 26 4
gpt4 key购买 nike

我正在尝试为 map 中的每个值创建资源。

例如,我需要创建一个 azure_application_password 资源。我希望应用程序的每个用户都有一个新的 secret ,因此我创建了一个 map ,其中包含使用该应用程序的人员以及他们可以访问应用程序的哪些部分:

variable "users" {
type = map(list(string))
}

users = {"user_1" : ["area_1", "area_2"], "user_2" : ["area_3", "area_4"]}

映射中的值还对应于通过azure_application创建的应用程序的名称

resource "azuread_application_password" "client_secret" {
for_each = var.users
display_name = "Secret-${each.key}"
application_object_id = azuread_application.auth[each.value].object_id
}

我希望最终为映射中的每个值创建一个 azure_application_password,并将显示名称作为键。

上面的 block 不起作用,因为 each.value 是一个 list(string)

最佳答案

您必须展平您的 map :

locals {
users_flat = merge([
for user, areas in var.users: {
for area in areas:
"${user}-${area}" => {
"area" = area
"user" = user
}
}
]...)
}

然后

resource "azuread_application_password" "client_secret" {
for_each = local.users_flat
display_name = "Secret-${each.value.user}"
application_object_id = azuread_application.auth[each.value.area].object_id
}

关于azure - 为映射中的每个值创建资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73059088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com