Terraform v0.10.7
Версия провайдера AWS = "~> 1.54.0"
Есть ли примеры, как преобразовать строку или список в карту в Terraform?
Мы настраиваем хранилище ключей / значений Консула следующим образом:
consul kv put common/rules/alb/service1 name=service1,port=80,hcproto=http,hcport=80
Я могу правильно обращаться к ключам и значениям, и теперь я пытаюсь использовать значения в качестве карты в Terraform:
data "consul_key_prefix" "common" {
path_prefix = "common/rules"
}
output "common"{
value = "${jsonencode(lookup(var.CommonRules,element(keys(var.CommonRules),1))) }"
}
$ terraform output
common = "{name=service1,port=80,hcproto=http,hcport=80}"
Но когда я пытаюсь получить к нему доступ как к карте, она не работает:
output "common"{
value = "${lookup(jsonencode(lookup(var.CommonRules,element(keys(var.CommonRules),1))),"name") }"
}
$ terraform output
(нет ответа)
Я попробовал несколько вещей здесь - например, разбить эти значения и снова объединить их в список, а затем запустить функцию «map», но она тоже не работает:
$ terraform output
common = [
name,
service1,
port,
80,
hcproto,
http,
hcport,
80
]
и затем пытаемся создать карту этого списка:
output "common2" {
value = "${map(split(",",join(",",split("=",lookup(var.CommonRules,element(keys(var.CommonRules),1))))))}"
}
но это тоже не работает.
Итак, мой вопрос: есть ли у кого-нибудь рабочий пример, когда он переводил строку (или список) в карту?
Заранее спасибо.