如何在Terraform中定义对象列表类型变量并在tfvars中正确赋值
Terraform list(object)类型变量赋值错误解决方案
错误原因
你定义的groups变量类型为list(object({group = string})),也就是由包含单个group字符串属性的对象组成的列表,你之前的赋值语法存在两处错误:
- Terraform中列表使用方括号
[]包裹元素,你错误使用了双花括号{{}} - 你将两个独立的对象合并到了同一个对象中,重复声明了
group属性,违反了单个对象内属性唯一的规则
正确赋值写法
如果你需要groups列表包含两个对象,对应group值分别为D和K,在.tfvars文件中的写法如下:
groups = [ { group = "D" }, { group = "K" } ]
如果偏好紧凑的单行写法,也可以写为:
groups = [{group = "D"}, {group = "K"}]
验证方法
修改完成后可以执行terraform console命令,输入var.groups校验变量是否能正常解析,无报错且输出对应列表值即为配置正确。
内容的提问来源于stack exchange,提问作者Mark McWiggins
相关产品推荐
相关产品推荐

