プログラミング

TerraformのTemplatefileでmapがレンダリングできるようになってた件

Terraformのバージョン0.12系ではTemplatefileにmapとして変数を渡せるようになってたよ!という話

 

そもそもの仕様として0.11系では、以下の例の通り

レンダリングする変数は全て1対1の文字列及び数値として渡す必要がありました。

 

0.11系の例:ECSのタスク定義のテンプレート

 

(中身は適当です)

ここでは以下の変数をレンダリングしています。

  • cpu
  • memory

 

この程度の変数の数なら良いのですが、もっと多くなってくると以下のようにmap管理したくなります。

これが0.11系だとできませんでした。

しかし、0.12系だと可能になります!具体的な書き方は以下の通り。

 

0.12系の例:ECSのタスク定義のテンプレート

 

このように、templatefile関数が用意されレンダリングが可能になっています。

data構文も減るので見栄えも良くなります!!

 

ちなみに一旦local変数として定義していますが、直接mapを渡すことももちろん可能です。

(for文も使えます)

 

また、テンプレートファイル側も以下の通り参照方法が変更になっていることにご注意ください

  • ${nginx.cpu}
  • ${nginx.memory}

 

実際に使うとめちゃくちゃ便利なのでぜひお試しください!!

 

Terraformを学びたい方へ

Terraformをきちんと学びたい方はUdemyのLearn DevOps: Infrastructure Automation With Terraform がとてもおすすめです。コスパ最高です。

よければ参考にしてみてください。

 

よく読まれている記事

1

  現在5年目のエンジニアで26歳です。 今回は20代の現役エンジニアとして、自分も含め転職について考えている方に向けて20代エンジニア転職に完全特化したおすすめのサービスを3つ紹介していき ...

2

これからエンジニアになりたい、プログラミングを使えるようになりたいという方に向けて 山のようにあるプログラミングスクールの中から、特におすすめなスクールをタイプ別に逆引きで3つ紹介します。 &nbsp ...

3

みなさんはを使っていますでしょうか。   本記事を見ていただいているということは、   プログラミングの勉強でを使うことに興味がある、 もしくはこれから動画を購入したいけどどれを買 ...

-プログラミング
-, ,

© 2020 クラインの備忘壺