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

Terraform读取YAML文件赋值本地变量报Invalid index错误如何解决

错误原因

你的YAML文件结构定义错误,vm字段下的name和system_cores前都加了列表标识符-,导致yamldecode解析后local.vm_raw是由多个独立单属性对象组成的元组,而非你预期的包含所有VM属性的单个映射对象。元组只能通过数字下标索引,无法直接用字符串键取值,因此触发了Invalid index报错。

修复方案

方案1:修改YAML结构(更推荐)

将同属一个VM的属性归到同一个映射下,去掉多余的列表标识符:

vm:
  name: vmingd25
  system_cores: 4

修改后原有的Terraform代码无需调整即可正常运行。

方案2:不改YAML,调整Terraform取值逻辑

如果你确实需要保留YAML的列表结构,可以通过数字下标取对应列表元素的属性:

locals {
  vm_raw = yamldecode(file("server.yaml"))["vm"]
  vm_name=  local.vm_raw[0]["name"]
  vm_cpu = local.vm_raw[1]["system_cores"]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:09:03