相关疑难解决方法(0)

Terraform:合并列表地图并合并重复键中的列表

我有类似的东西

locals {
  roles = [
    {
      role = "roles/admin"
      members = ["user:user@example.com"]
    },
    {
      role = "roles/viewer"
      members = ["user:user2@example.com"]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我希望我的模块能够导出自己的角色列表,例如

roles = [
    {
      role = "roles/viewer"
      members = ["user:newperson@example.com"]
    }
]
Run Code Online (Sandbox Code Playgroud)

然后能够将这些东西合并在一起得到

locals {
  roles = [
    {
      role = "roles/admin"
      members = ["user:user@example.com"]
    },
    {
      role = "roles/viewer"
      members = ["user:user2@example.com", "user:newperson@example.com"]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我知道如果我将所有内容存储为地图,我可以合并地图,只要没有重复的键,它就可以正常工作。但在这种情况下,我明确希望能够拥有重复的键,以便一个模块不需要关心任何其他模块。

更新我可以通过这样做来实现这一点:

roles = distinct(flatten([
    for rm in local.role_maps : [
      for role, members in rm : …
Run Code Online (Sandbox Code Playgroud)

terraform

4
推荐指数
1
解决办法
7347
查看次数

标签 统计

terraform ×1