Правильный способ вывода источника данных Terraform template_provider
Я пытаюсь визуализировать вывод карты, используя шаблон в Terraform:
variable "default_tags" {
type = "map"
default = {
"tag1" ="Tag A",
"tag2" ="Tag B"
}
}
Определите источник данных template_file для отображения карты:
```
data "template_file" "test" {
template = "${data}"
vars {
data = "${join(",", formatlist("key: %s, val: %s. ", keys(var.default_tags), values(var.default_tags)))}"
}
}
```
Мой выходной блок должен выглядеть так:
```
output "default_tags_rendered" {
value="${data.template_file.test.rendered}"
}
```
Однако я получаю эту ошибку при планировании:
```
Error: data.template_file.test: 1 error(s) occurred:
* data.template_file.test: invalid variable syntax: "data". Did you mean 'var.data'? If this is part of inline `template` parameter
then you must escape the interpolation with two dollar signs. For
example: ${a} becomes $${a}.
```
Каков будет правильный способ вывода отрендеренного шаблона?
1 ответ
Это может быть лучше подходит для использования локальных значений, таких как
locals {
data = "${join(",", formatlist("key: %s, val: %s. ", keys(var.default_tags), values(var.default_tags)))}"
}
output "default_tags_rendered" {
value="${local.data}"
}
Причина заключается в том, что поставщик template_file в основном используется для файлов (или встроенных шаблонов), которые должны выполняться с использованием стандартного синтаксиса интерполяции. В этом случае у вас нет переменных для интерполяции в шаблоне - у вас есть входящая переменная, и вам нужно изменить ее значение.