terraform将变量值指定给映射字段值,如果不存在,则指定默认值
很抱歉问了一个基本的问题。。。但我找不到更优雅的方法来解决这个问题 输入:terraform将变量值指定给映射字段值,如果不存在,则指定默认值,terraform,Terraform,很抱歉问了一个基本的问题。。。但我找不到更优雅的方法来解决这个问题 输入: a = [ { one=1, two=2, three=3}, { two=2, three=3}, { one=1, three=3}, ] 在我的剧本中,我有一些 locals { containers = [for i, c in var.a : merge(c, { field1 = contains(keys(c), "one") ? c.one : "n
a = [
{ one=1, two=2, three=3},
{ two=2, three=3},
{ one=1, three=3},
]
在我的剧本中,我有一些
locals {
containers = [for i, c in var.a : merge(c, {
field1 = contains(keys(c), "one") ? c.one : "not defined"
field2 = contains(keys(c), "two") ? c.two : "not defined"
field3 = contains(keys(c), "three") ? c.three : "not defined"
lastfield = contains(keys(c), "one") ? (contains(keys(c), "two") ? "${c.one},${c.two}" : "${c.one}") : ""
})]
}
有没有更优雅的方法?基本上,我想向列表的每个元素添加一些字段,我必须检查它元素有一个特定的字段,并使用这个值或默认值
此外,“lastfield”应参考字段1和字段2,而不是重新检查字段是否存在
我认为方法是使用一些中间空的资源来计算field1、field2、field3,然后使用lastfield中的资源,但这并不是最优的
如有任何建议,将不胜感激:)
谢谢 对于嵌套的默认值,这可能是您尝试实现的选项