Я пытаюсь создать шаблон конфигурации logstash, использующий выражение sprintf с использованием файла шаблона Terraform.
Пример:
filter {
json { source => "message" }
geoip {
source => "[user][rparam][ip]"
}
useragent {
source => "[user][rparam][ua]"
}
date {
match => [ "[@metadata][kafka][timestamp]", "UNIX_MS" ]
}
mutate { add_field => { "[@metadata][id]" => "%{[id]}" } }
mutate { add_field => { "[@metadata][eid]" => "%{[eid]}" } }
mutate { remove_field => [ "message", "id", "eid", "@version", "tags" ] }
if "[user]" {
mutate { remove_field => [ "[user][rparam][ip]" ] }
}
}
К сожалению, используемые процентные символы "%" также являются частью языка шаблонов Terraform, поэтому Terraform возвращает мне следующее сообщение об ошибке:
* data.template_file.logstash-output: data.template_file.logstash-output: failed to render : <template_file>:6,24-25: Invalid character; This character is not used within the language., and 1 other diagnostic(s)
Как это можно избежать? Документация Terraform не оставляет зацепок, а только указывает, как экранировать выражение интерполяции переменной ($)