在terraform版本从0.11更新到0.12.26之后,我发现map中的查找和值列表出现错误。
variable "foo" {
type = map
}
foo = {
x.y = "bar"
}
我有一个map "foo“作为变量类型( map ),然后我在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.
有人能帮帮忙吗?
发布于 2020-06-25 23:22:46
如果您想要一个包含点字符.
的映射键,则必须将该键用引号括起来,以便Terraform可以看到您打算生成一个包含点的字符串,而不是使用变量x
的y
属性的值
foo = {
"x.y" = "bar"
}
同样,要访问该元素,您需要在索引表达式中引用键,如foo["x.y"]
。您还可以使用lookup(foo, "x.y")
--仍然带有引号--但这种方法在Terraform0.12中已被弃用,因为foo["x.y"]
已经将其替换为从映射值访问元素的主要方式。
https://stackoverflow.com/questions/62585604
复制相似问题