Я пытаюсь использовать многострочную строку в блоке provisioner "remote-exec"
моего скрипта terraform. Однако всякий раз, когда я использую синтаксис EOT
, описанный в документации и различных примерах, я получаю сообщение об ошибке: invalid characters in heredoc anchor
.Terraform: недопустимые символы в heredoc anchor
Вот пример простого provisioner "remote-exec"
, который получил эту ошибку (оба типа СРВ получить эту ошибку, когда попытался отдельно):
provisioner "remote-exec" {
inline = [
<< EOT
echo hi
EOT,
<< EOT
echo \
hi
EOT,
]
}
Update: Здесь рабочий раствор, внимательно прочитайте, если вы которые с этой проблемой, потому что Terraform очень разборчив, когда дело доходит до EOF:
provisioner "remote-exec" {
inline = [<<EOF
echo foo
echo bar
EOF
]
}
Обратите внимание, что если вы хотите использовать ВФ все команды, которые вы используете в provisioner "remote-exec"
блока должен б e внутри EOF. Вы не можете иметь как EOF, так и не EOF, тот или другой.
Первая строка EOF должна начинаться, как это, и вы не можете иметь какие-либо пробелы в этой строке после <<EOF
или иначе он будет жаловаться о том, invalid characters in heredoc anchor
: тогда
inline = [<<EOF
Ваш EOF должен быть положен конец, как это с EOF
в то же отступом как ]
EOF
]
пожалуйста, примите ответ – holms