In Terraforming ich verwenden kann:Terraforming - eingebettete Anführungszeichen
name = "${var.names["apple"])"
, die die Zeichenfolge "Apfel" in var.names
nachschlägt.
Diese Syntax würde jedoch in den meisten Programmiersprachen brechen, da sie "${var.names["
und dann apple
und dann "])"
analysieren würde.
Ich habe die Dokumentation nachgeschlagen, konnte aber nichts finden. Gibt es irgendwelche Details?
Ich habe gelesen:
https://www.terraform.io/docs/configuration/syntax.html und https://www.terraform.io/docs/configuration/interpolation.html
Das letzte Glied gibt kurz ein Beispiel
template = "${file("templates/web_init.tpl")}"
aber nicht erklären.
Was fragen Sie eigentlich? Wie können sie das schaffen? Ich vermute, das liegt an ihrem Parser, von dem ich annehme, dass er nach '$ {..}' sucht, dann arbeitet er nach außen. –
Ich dachte, ich wäre ziemlich klar gewesen -> Gibt es Details zu dieser Syntax? Es ist ein wenig nervig, die Syntax erraten zu müssen, wenn sie eigentlich sehr intuitiv ist, da die Syntax in den meisten Programmiersprachen brechen würde. – Snowcrash
Richtig, da stimme ich dir zu - ich habe das Gefühl, dass ich die Syntax oft bekämpfe. Auf Ihrem zweiten Link heißt es: "In Strings in Terraform eingebettet, können Sie unabhängig davon, ob Sie die Terraform-Syntax oder die JSON-Syntax verwenden, andere Werte interpolieren. Diese Interpolationen sind in $ {} eingeschlossen, z. B. $ {var.foo }. "_ Ich denke, zusammen mit der Tatsache, dass diese Interpolationen dann Kartenvariablen usw. enthalten können, erklärt es, aber ja - nicht sehr explizit –