Ошибка "неоднозначный ключ атрибута" после обновления до версии 0.12.26 terraform
После обновления версии terraform с 0.11 до 0.12.26 я вижу ошибку при поиске и списке значений внутри карты.
variable "foo" {
type = map
}
foo = {
x.y = "bar"
}
У меня есть карта "foo" как тип переменной (карта), а затем у меня есть пара "ключ-значение" в карте с xy = "bar". При поиске я пытаюсь прочитать значение xy как,
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.
может кто поможет?
1 ответ
Если вы хотите иметь ключ карты, содержащий символ точки .
тогда вы должны написать ключ в кавычках, чтобы Terraform мог видеть, что вы собираетесь создать строку, содержащую точку, а не использовать значение y
атрибут переменной x
:
foo = {
"x.y" = "bar"
}
Аналогичным образом, чтобы получить доступ к этому элементу, вам нужно заключить в кавычки ключ в выражении индекса, например foo["x.y"]
. Вы также можете потенциально использоватьlookup(foo, "x.y")
- все еще с кавычками - но этот подход устарел в Terraform 0.12, потому что foo["x.y"]
заменил его как основной способ доступа к элементу из значения карты.