You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从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
}

代码说明

  1. 通过yamldecode读取并解析teams.yaml,获取TEAMS数组
  2. 嵌套for表达式遍历每个团队的所有角色,提取每个角色下的members列表
  3. 用flatten函数将嵌套列表扁平化,得到所有邮箱的一维列表

输出结果

all_members = [
  "ab@ad.com",
  "cd@ad.com",
  "pr@ad.com",
]

内容的提问来源于stack exchange,提问作者EDUEVER03

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 08:05:23