У меня есть файл шаблона, который создает файл fluentd и вставляет различные переменные. Я сейчас пытаюсь включить этот плагин , который ожидает найти свои собственные переменные в файле конфигурации. Проблема заключается в том, что Terraform определяет переменную в шаблоне, например ${variable}
, и этот плагин ожидает, что его переменные в файле будут найдены как литерал ${variable}
Как я могу сказать terraform не интерполировать ${}
в файле, но фактически передавать всю эту строку?
Фрагмент файла:
<filter tomcat.logs>
@type record_transformer
<record>
customer ${customer}
environment ${environment}
application ${application}
</record>
</filter>
Выше ${}
- все переменные, которые я определил для своего шаблона. Теперь мне нужно добавить такой раздел.
<record>
hostname ${tagset_name}
instance_id ${instance_id}
instance_type ${instance_type}
az ${availability_zone}
private_ip ${private_ip}
vpc_id ${vpc_id}
ami_id ${image_id}
account_id ${account_id}
</record>
Где все это не переменные, а то, как это на самом деле должно выглядеть в отображаемом шаблоне. Я попытался поменять их местами, чтобы они походили на $${account_id}
, но это просто приводит к отображению account_id в файле.
data "template_file" "app" {
template = "${file("templates/${var.application}.tpl")}"
vars {
customer = "${var.customer}"
environment = "${var.environment}"
application = "${var.application}"
}
}
Вот разбивка того, что происходит.
In the user data I have "instance_type $${instance_type}"
The launch configuration that is created for the instances, shows "instance_type ${instance_type}"
The actual file that is present on AWS shows "instance_type"