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

如何使用Terraform将含键字段的列表转为映射结构?

Terraform:将含键字段的列表转换为映射结构

你可以用zipmap函数结合列表推导式实现需求,也可以直接用更直观的for表达式构建映射,两种方法都能达到目标:

方法1:使用zipmap函数

zipmap需要两个等长列表:一个作为映射的键集合,另一个作为对应的值集合。代码如下:

mylistmap = zipmap(
  # 提取所有item的key作为映射的键列表
  [for item in var.mylist : item.key],
  # 提取每个item去掉key后的属性作为值列表
  [for item in var.mylist : {
    property1 = item.property1
    property2 = item.property2
  }]
)

方法2:直接使用for表达式(更易读)

Terraform的映射推导式可以直接遍历列表生成映射,写法更简洁:

mylistmap = {
  for item in var.mylist : item.key => {
    property1 = item.property1
    property2 = item.property2
  }
}

说明

两种方法的核心逻辑一致:遍历原列表中的每个对象,以对象的key字段作为映射的键,以对象中key以外的属性组成的新对象作为对应的值。第二种方法无需额外调用zipmap,代码结构更清晰,推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:48:30