Próbuję użyć ciągu wielowierszowego w bloku provisioner "remote-exec"
mojego skryptu terraform. Jednak zawsze, gdy używam składni EOT
, jak opisano w dokumentacji i różnych przykładach, pojawia się błąd, który narzeka na posiadanie: invalid characters in heredoc anchor
.Terraform: nieprawidłowe znaki w kotwicy heredoc
Oto przykład prostego provisioner "remote-exec"
która otrzymała ten błąd (oba rodzaje EOT otrzymać ten błąd przy próbie oddzielnie):
provisioner "remote-exec" {
inline = [
<< EOT
echo hi
EOT,
<< EOT
echo \
hi
EOT,
]
}
Aktualizacja: Oto roztwór roboczy, przeczytaj uważnie, jeśli mają ten problem, ponieważ terraform jest bardzo wybredna, jeśli chodzi o EOF:
provisioner "remote-exec" {
inline = [<<EOF
echo foo
echo bar
EOF
]
}
Pamiętaj, że jeśli chcesz używać EOF wszystkie polecenia użyć w provisioner "remote-exec"
bloku musi b e wewnątrz EOF. Nie możesz mieć jednocześnie EOF i non EOF.
Pierwsza linia EOF należy rozpocząć tak, i nie można mieć żadnych spacji w tej linii po <<EOF
albo będzie narzekać mając invalid characters in heredoc anchor
:
inline = [<<EOF
Twój EOF musi tak skończyć z EOF
w tym samym nacięciu jako ]
EOF
]
proszę przyjąć odpowiedź – holms