Terraform 将元组元素组合为列表

Terraform Combine tuple elements as list

有人可以建议如何将 terraform 元组与要列出的元素组合起来,如下所示。

场景: 我有一堆 yaml 文件结构如下,我用本地值将它们展平并分配给资源属性。

在我的资源上,我需要将角色值分配为列表,示例如下

roles = local.acs_tup  #["READER,OWNERSHIP","OWNERSHIP1","READER1,DEVELOPER1"]

yaml 文件内容格式

schemagrants :
  - schema: BDV    
    privilege: USAGE
    roles:
      - READER      
      - OWNERSHIP
    environment: DEV 
  - schema: BDV    
    privilege: USAGE    
    roles:
      - OWNERSHIP1
      - DEVELOPER1  
    environment: DEV
- schema: CDV    
    privilege: USAGE    
    roles:
      - DEVELOPER2  
    environment: DEV

locals {
  acs_files = fileset("./objects/schema-accessgrant", "*.yml")
  acs_data  = [for f in local.acs_files : yamldecode(file("./objects/schema-accessgrant/${f}"))]
  acs_flatten = flatten([for access in local.acs_data :
    [for sgr in access.schemagrants : {
      id          = "${sch.schema}.${sch.privilege}.${sch.environment}"
      roles       = sgr.roles
      environment = sgr.environment
      }
    ]]
  )
  acs_tup = [for roles in local.acs_flatten :
    {
      role = join(",", roles.roles)

    }
  ]
}
    resource "snowflake_database_grant" "database-access" {    
    database_name     = "database"
    privilege         = "USAGE"
    roles             = local.acs_tup  #["READER,OWNERSHIP","OWNERSHIP1","DEVELOPER1","DEVELOPER2"]
    shares            = []
    with_grant_option = false
  }
# Current Output
[      + {
          + role = "READER,OWNERSHIP"
        },
      + {
          + role = "ONWERSHIP1,DEVELOPER1"
        },
      + {
          + role = "DEVELOPER2"
        },    
    ]
# Expected Output
["READER,OWNERSHIP","OWNERSHIP1","DEVELOPER1","DEVELOPER2"]

假设您的预期输出应该是 ["READER","OWNERSHIP","OWNERSHIP1","DEVELOPER1","DEVELOPER2"],您的 acs_tup 必须是:

acs_tup = flatten([for roles in local.acs_flatten: roles.roles])