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

如何将Terraform字典中的对象扩展为Map而非数组?

Terraform 转换Map对象为扩展Map而非数组的解决方案

问题核心

你当前使用列表推导式(方括号[])处理source-map,最终生成了数组结构。要得到目标Map结构,需要改用Terraform的Map推导式(大括号{})。

修改后的代码

locals {
  source-map = {
    foo = {
        name = "George"
    },
    bar = {
        name = "Sally"
    }
  }

  enriched-map = {
    for k, v in local.source-map : k => {
        name       = v.name,
        lower_name = lower(v.name)
    }
  }
}

output "enriched-map" {
  value = local.enriched-map
}

关键修改说明

  • 把原代码中包裹推导逻辑的方括号[]替换为大括号{},明确声明要生成Map类型
  • 使用k => <value>的Map推导语法:指定每个键值对的键为原Map的键k,值为扩展后的对象

执行结果

修改后输出的enriched-map将符合你的期望:

enriched-map = {
  "bar" = {
    "lower_name" = "sally"
    "name" = "Sally"
  },
  "foo" = {
    "lower_name" = "george"
    "name" = "George"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:02:34