Правильный способ вывода источника данных Terraform template_provider - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь отобразить выходные данные карты, используя шаблон в 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 Ответ

0 голосов
/ 26 сентября 2018

Это может лучше подходить для использования локальных значений и т. Д.

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 в основном используется для файлов (или встроенных шаблонов).) которые должны проходить через стандартный синтаксис интерполяции.В этом случае у вас нет переменных для интерполяции в шаблоне - у вас есть входящая переменная, и вам нужно изменить ее значение.

...