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

Terraform基于AWS账号标签筛选部署CloudFormation StackSet

Terraform 按标签筛选AWS账号实现CloudFormation StackSet定向部署

针对你当前两个等长、索引一一对应的账号ID/标签值列表场景,直接用for表达式按索引做条件匹配即可,不需要额外引入复杂函数。

直接适配现有本地变量的实现写法

直接在locals块中补全test_account_ids的逻辑即可:

locals {
  account_ids   = module.organization.organization_accounts.*.id
  account_types = module.accounts.tags_all.*.Env

  test_account_ids = [
    for idx, env_tag in local.account_types : local.account_ids[idx]
    if env_tag == "test"
  ]
}

这个写法会遍历标签列表的每一个索引,当对应位置的Env标签值等于test时,就把同索引位置的账号ID加入结果集,完全匹配你给出的输出结构,最终生成的账号ID列表可以直接传给StackSet资源的目标账号参数,和之前全账号部署的参数格式完全兼容。

可选的鲁棒性优化写法

如果后续担心模块输出的两个列表顺序出现错位,可以跳过分离的列表,直接从组织账号的原始结构体筛选,不依赖列表顺序对应关系:

test_account_ids = [
  for acct in module.organization.organization_accounts : acct.id
  if try(acct.tags_all.Env, "") == "test"
]

注意事项

  • 标签值匹配严格区分大小写,你给出的示例中生产环境Env值为大写开头的Prod、测试环境为全小写的test,判断条件里的字符串要和实际标签值完全一致,避免出现筛漏、错配问题
  • 如果后续要新增其他环境的筛选逻辑,比如筛选生产账号,只需要复制同样的逻辑修改if后的判断条件即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:42:21