[英]terraform convert list to string dynamically
我需要从 for_each 生成的元组/列表中提取字符串。
如何在每个角色的成员中传递“account1”然后“account2”?
variable "binding" {
type = map
default = {
"roles/viewer" = [
"account1",
"account2",
],
"roles/logging.viewer" = [
"account1",
"account2",
],
}
}
resource "google_project_iam_member" "test-sa-binding" {
project = var.PROJECT_ID
for_each = var.binding
role = each.key
member = ???
}
谢谢,
你必须先展平你的变量:
locals {
flat_binding = merge([
for role, accounts in var.binding:
{
for idx, account in accounts:
"${role}-${idx}" => {
account = account
role = role
}
}
]...) # pls, do NOT remove the dots
}
然后
resource "google_project_iam_member" "test-sa-binding" {
project = var.PROJECT_ID
for_each = local.flat_binding
role = each.value["role"]
member = each.value["account"]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.