首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >terraform hcl对象转换

terraform hcl对象转换
EN

Stack Overflow用户
提问于 2021-05-21 15:53:19
回答 2查看 35关注 0票数 0

有一个像这样的对象

代码语言:javascript
复制
variable "user_role" {
  type = map(list(string))
}

user_role = {
 user_a: ['role_a', 'role_b', 'role_c']
 user_b: ['role_a', 'role_c']
 user_c: ['role_c']
}

我目前所做的只是简单地扁平化成:

代码语言:javascript
复制
role-user = flatten([
    for member in keys(var.user_role): [
      for value in var.user_role[member] : {
        role = value
        member = member
      }
    ]
  ])

需要将其转换为关键字的角色。

代码语言:javascript
复制
role_user = {
  role_a: ['user_a', 'user_b']
  role_b: ['user_a']
  role_c: ['user_a', 'user_b', 'user_c']
}

有什么办法可以做到这一点吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-22 08:37:33

根据您的示例,您似乎在描述the built-in transpose function的功能

代码语言:javascript
复制
locals {
  role_user = transpose(var.user_role)
}
票数 0
EN

Stack Overflow用户

发布于 2021-05-21 16:17:03

您可以执行以下操作(不要忘记...):

代码语言:javascript
复制
role-user = merge([
           for user, roles in var.user_role:
            {
              for role in roles: user => role...
            }
           ]...)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67632823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档