自由気ままに書いちゃおう

好きなことをつらつらと・・・

【Terraform】(初心者向け)ヒアドキュメントの<<と<<-の違いについて

今回は、terraformでヒアドキュメントを利用する際の<<と<<-の違いについてです。

 

■背景

IAMポリシーを作成する際、<<を利用してterraform planを行うと以下の通りエラーが出力される。

【コード】

 

【terraform plan結果】

"policy "には、無効なJSONポリシーが含まれています:先頭のスペース文字は使用できません。

 

■結論

<<-だとエラーは出ない。

■何故?

まず、<< を使った場合のエラーは、

「先頭のスペース文字は使用できません。」

です。

つまり、<<を使う場合、ヒアドキュメント内の全てのインデント(つまり、行の先頭のスペースまたはタブ)がそのまま保持されます。

 

<<- を使った場合には、インデントが削除されるため、エラーが発生しません。

具体的には、終端マーカー(この場合はEOF)が記述されている行のインデントレベルまでのスペースやタブが、ヒアドキュメント内の各行から削除されます。

 

 

以上です。