Ich versuche, eine mehrzeilige Zeichenfolge in der provisioner "remote-exec"
Block meines Terraform-Skript verwenden. Aber immer wenn ich die EOT
Syntax verwende, die in der Dokumentation und in den verschiedenen Beispielen beschrieben wird, bekomme ich einen Fehler, der sich beschwert über: invalid characters in heredoc anchor
.Terraform: ungültige Zeichen in Heredoc-Anker
Hier ist ein Beispiel für eine einfache provisioner "remote-exec"
, die diesen Fehler empfangen (beide Arten von EOT diesen Fehler erhalten, wenn sie getrennt versucht):
provisioner "remote-exec" {
inline = [
<< EOT
echo hi
EOT,
<< EOT
echo \
hi
EOT,
]
}
Update: Hier die Arbeitslösung, lesen Sie sorgfältig, wenn haben dieses Problem, weil Terraforming sehr wählerisch, wenn es um EOF kommt:
provisioner "remote-exec" {
inline = [<<EOF
echo foo
echo bar
EOF
]
}
Hinweis
dass, wenn Sie EOF alle Befehle, die Sie in einemprovisioner "remote-exec"
Block verwenden verwenden wollen, müssen b e innerhalb des EOF. Sie können nicht beide EOF und nicht EOF haben die eine oder andere.
Die erste Zeile der EOF muss wie folgt beginnen, und Sie können keine Leerzeichen in dieser Linie haben nach <<EOF
sonst wird es beklagen invalid characters in heredoc anchor
darüber, dass:
inline = [<<EOF
Ihr EOF muss dann wie folgt mit dem Ende EOF
zur gleichen Vertiefung als ]
EOF
]
akzeptieren Sie bitte eine Antwort – holms