如何从Terraform的teams.yaml中提取所有members值并合并为列表?
提取YAML中所有members值的Terraform实现
问题分析
原代码未正确定位到members字段,仅将整个role对象赋值给name,无法提取目标邮箱列表。
修正后的代码
locals { teams_file = yamldecode(file("${path.cwd}/teams.yaml"))["TEAMS"] all_members = flatten([ for team in local.teams_file : [ for role in team.roles : role.members ] ]) } output "all_members" { value = local.all_members }
代码说明
- 通过
yamldecode读取并解析teams.yaml,获取TEAMS数组 - 嵌套
for表达式遍历每个团队的所有角色,提取每个角色下的members列表 - 用
flatten函数将嵌套列表扁平化,得到所有邮箱的一维列表
输出结果
all_members = [ "ab@ad.com", "cd@ad.com", "pr@ad.com", ]
内容的提问来源于stack exchange,提问作者EDUEVER03
相关产品推荐
相关产品推荐

