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

Terraform中如何获取嵌套Map指定环境首个元素的setting1值

错误原因

你用[0]数字索引的取值方式仅适用于列表/数组类型,而local.environments[var.env]返回的是Map(键值对映射)类型,Map本身没有内置的数字下标索引,因此触发报错。

解决方案

根据你的实际需求,两种实现方式可选:

  • 如果你明确知道要取的实例键名,直接按键名索引即可:
    # 比如要取dev环境下hello001实例的setting1值
    local.environments[var.env]["hello001"].setting1
    
  • 如果你不需要指定键名,只想取当前环境下Map的第一个元素的值,先通过values()函数将Map的所有值提取为列表,再用下标索引:
    # 直接取当前环境Map的第一个元素的setting1
    values(local.environments[var.env])[0].setting1
    

注意:Terraform 0.14之前的版本中Map是无序结构,如果你需要稳定的排序结果,可以先对Map的键做字典序排序后再提取值:

# 按Key字典序排序后取第一个元素的setting1,结果稳定可预期
values({ for k, v in sort(keys(local.environments[var.env])) : k => v })[0].setting1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:57:05