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

如何重构Terraform含重复键的map列表,合并相同键下的键值对

你可以直接通过Terraform内置的group_by、merge函数完成结构转换,无需手动修改列表内容,示例代码如下:

locals {
  # 你原始的snap_id_list
  raw_snap_id_list = [
    {
      "3" = {
        "/x01" = "snap-01397a07b574e781f"
      }
    },
    {
      "2" = {
        "/x04" = "snap-035d6c4165d34041a"
      }
    },
    {
      "1" = {
        "/x04" = "snap-07bc61be86cb0b3a2"
      }
    },
    {
      "3" = {
        "/x04" = "snap-0aa3a4d1cbd87531b"
      }
    },
    {
      "1" = {
        "/x01" = "snap-0e501f7d2798eeb70"
      }
    },
    {
      "2" = {
        "/x01" = "snap-0fe2fe503e433fdbd"
      }
    },
  ]

  # 按数字键分组,合并同组的挂载点-快照ID映射
  grouped_snaps = group_by(
    entry => keys(entry)[0],
    local.raw_snap_id_list
  )

  # 转换为你需要的列表结构
  snap_id_list = [
    for id, snaps in local.grouped_snaps : {
      (id) = merge(snaps...)
    }
  ]
}

如果需要验证输出结果,可以添加如下output配置,执行terraform plan即可查看和你预期完全一致的结构:

output "snap_id_list" {
  value = local.snap_id_list
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:36:00