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

Terraform新手求助:结合多列表遍历资源创建AWS组织策略

解决方案

你需要将文件名、对应描述和文件内容整合成结构化映射,这样就能在创建资源时方便遍历并获取每个元素的信息。

步骤1:整合关联数据

修改本地变量,添加一个整合了文件名、描述和文件内容的映射:

locals {
  files = split(",", var.filenames)
  descs = split(",", var.descriptions)

  # 验证文件名和描述的数量必须一致
  _validate_desc_count = length(local.files) == length(local.descs) ? true : error("文件名列表和描述列表的元素数量必须一一对应")

  # 整合每个文件的名称、描述和对应的内容
  file_policy_details = {
    for idx, filename in local.files : filename => {
      description = local.descs[idx]
      content     = data.local_file.p_files[filename].content
    }
  }
}

步骤2:遍历整合后的映射创建策略资源

使用for_each遍历上面的file_policy_details,直接获取每个策略需要的字段:

resource "aws_organizations_policy" "org_policies" {
  for_each = local.file_policy_details

  name        = each.key  # 文件名作为策略名称
  content     = each.value.content  # 对应文件的内容
  description = each.value.description  # 对应索引的描述
}

关键说明

  • 通过索引关联local.files和local.descs,确保每个文件名对应正确的描述,前提是输入的逗号分隔字符串元素数量完全匹配。
  • 添加的_validate_desc_count会在Terraform初始化时检查数量是否一致,避免因索引越界导致的错误。
  • data.local_file.p_files按文件名作为key存储,所以可以直接用filename作为键值获取对应的文件内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 09:42:07