我尝试在使用 Terraform 创建实例后创建 Filebeat 配置文件:
resource "local_file" "greylogIP" {
content = <<EOF
filebeat.inputs:
- type: log
enabled: false
paths:
- /var/log/*.log
filebeat.config.modules:
path: '$'{path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 3
output.logstash:
hosts: ["${aws_instance.web.public_ip}:5014"]
EOF
filename = "filebeat.conf"
}
我需要通过的地方${aws_instance.web.public_ip}
变量来分配动态 IP,但 Terraform 也尝试插入一些内容path: '$'{path.config}/modules.d/*.yml
这是 Filebeat 配置的一部分并引发错误。
我怎样才能通过path: '$'{path.config}/modules.d/*.yml
作为字符串代替?
您需要转义字面上的美元($
)和双美元($$
).
The 插值文档涵盖这个:
您可以使用双美元符号转义插值:$${foo} 将呈现为文字 ${foo}。
中还有一些进一步提到它模板文档:
重要提示:内联模板中的模板变量(例如上面的 consul_address)必须使用双 $ 进行转义。未转义的插值通常会在执行模板之前由 Terraform 处理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)