&引用;“属性键不明确”;更新到terraform版本0.12.26后出错
在terraform版本从0.11更新到0.12.26后,我看到地图中的查找和值列表出现错误&引用;“属性键不明确”;更新到terraform版本0.12.26后出错,terraform,terraform-provider-aws,terraform0.12+,Terraform,Terraform Provider Aws,Terraform0.12+,在terraform版本从0.11更新到0.12.26后,我看到地图中的查找和值列表出现错误 variable "foo" { type = map } foo = { x.y = "bar" } 我有一个映射“foo”作为变量类型(map),然后在映射中有一个键值对x.y=“bar”。在查找中,我试图将x.y的值读取为 lookup(var.foo, x.y) 有了这个,我就错了 Error: Ambiguous attribute ke
variable "foo" {
type = map
}
foo = {
x.y = "bar"
}
我有一个映射“foo”作为变量类型(map),然后在映射中有一个键值对x.y=“bar”。在查找中,我试图将x.y的值读取为
lookup(var.foo, x.y)
有了这个,我就错了
Error: Ambiguous attribute key
on line 13:
13: x.y = "bar"
If this expression is intended to be a reference, wrap it in parentheses. If
it's instead intended as a literal name containing periods, wrap it in quotes
to create a string literal.
有人能帮忙吗?如果您想要一个包含点字符的映射键
,那么您必须将该键写在引号中,以便Terraform可以看到您想要生成一个包含点的字符串,而不是使用变量x
的y
属性的值:
foo = {
"x.y" = "bar"
}
同样,要访问该元素,需要引用索引表达式中的键,如
foo[“x.y”]
。您也可以潜在地使用lookup(foo,“x.y”)
——仍然带有引号——但Terraform 0.12中不推荐使用这种方法,因为foo[“x.y”]
已取代它作为从映射值访问元素的主要方式。@Meet101这个答案是正确的,您应该接受它并对其进行投票。