Источник данных template_file
продолжает существовать только для совместимости с конфигурациями, написанными для Terraform 0.11. Поскольку вы используете Terraform 0.12, вам следует использовать функцию templatefile
, которая является встроенной частью языка и поддерживает все типы значений.
Поскольку templatefile
функция, вы можете вызывать ее из любого места, где ожидаются выражения. Если вы хотите использовать результат визуализации несколько раз, вы можете определить его как именованное локальное значение , например:
locals {
cloudinit_data = templatefile("${path.module}/cloudinit.cfg", {
proxy = var.proxy
})
}
Если вам нужен только один раз, например , если вы используете его просто для заполнения user_data
единственного aws_instance
ресурса - тогда вы можете просто написать это выражение встроенным в блоке ресурса, чтобы сохранить все вместе и сделать конфигурацию (субъективно) проще для чтения :
resource "aws_instance" "example" {
# ...
user_data = templatefile("${path.module}/cloudinit.cfg", {
proxy = var.proxy
})
}