Имея более сложный объект списка, подобный этому
variable "proxy" {
type = list(object({
enabled = bool
host = string
port = number
user = string
password = string
}))
default = [
{
enabled = false
host = ""
port = 0
user = ""
password = ""
}
]
}
Я хочу использовать это во внешнем шаблоне (в моем случае cloudinit). Директива template_file
позволяет передавать переменные в шаблон. К сожалению, не для более сложных типов:
Обратите внимание, что все переменные должны быть примитивами. Прямые ссылки на списки или карты вызовут ошибку проверки.
Так что-то вроде этого
data "template_file" "cloudinit_data" {
template = file("cloudinit.cfg")
vars = {
proxy = var.proxy
}
}
вызвать ошибку
Неподходящее значение для атрибута "vars": элемент "proxy": обязательная строка.
Это приводит меня к двум вопросам:
Как передать переменную в шаблон? Я предполагаю, что мне нужно преобразовать его в такой примитивный тип:
vars = { proxy_host = var.proxy.host }
Это не работает:
Это значение не имеет атрибутов.
- Есть ли альтернативный способ передать этот объект прямо в шаблон?
Пользуюсь v0.12.17.