AWS プログラミング

【AWS Terraform 0.12】dynamic構文の使い方【resourceやdataをfor_eachで繰り返しループする】

更新日:

Terraformのバージョン0.12から追加された、『dynamic』の使い方を解説します!

うまく使用するとかなりtfファイルがスッキリ書けますのでぜひ参考にしてみてください!

 

ちなみにTerraformについて学習したい方はUdemyのLearn DevOps: Infrastructure Automation With Terraform がめちゃくちゃおすすめです。

 

 

 

dynamicとは

 

dynamic構文とは、Terraform0.12から追加された機能の一つで同一名のブロックをループで処理することができます。

こう書いてもよく意味がわからないと思うので、具体例を記載します。

 

具体例

例えば以下のような時に使用します。

 

  • 『aws_iam_policy_document』内で「statement」ブロックをループ処理で記載したい。
  • 『aws_security_group』内で「ingress」ブロックをループ処理で記載したい。

 

などなど。

基本的に、resourceないしdata内のブロックを複数記載する時に繰り返し処理によって書きたい場合に使用します。

 

使い方

 

実際の使い方(tfファイル内の書き方)について説明します。

今回は例として、上記で記載した『aws_iam_policy_document』を使用します!

 

構文の形式

まず、構文の形式としては次のようになります。

 

次の実際の作成手順を参考にしていただくとより理解しやすいと思います!

 

1. リストを定義

dynamic構文ではループによって処理を行うので、ループ時に使用するリストを定義します。

(今回はstatementブロック内のeffect属性をリストで定義します)

 

 

2. dynamic構文を記載

上記のリストを用いてdynamic構文を記載します。

 

便宜上「actions」と「resources」は記載していませんが、実際にはお使いの環境に併せて記載してください!

 

 

statement.key

dynamicで指定したブロック名(今回はstatement)に「.key」を付けるとループのインデックスを取得することができます。(0始まり)

 

statement.value

dynamicで指定したブロック名(今回はstatement)に「.value」を付けるとリストの値を取得することができます。

 

 

dynamicを使用しないで書くとどうなるか

上記をdynamicを使用しないで書くと次のようになります。

 

 

だいぶ冗長な書き方になりますよね。

こんな感じで、ループで処理できるところはdynamicを使用するとかなりスッキリ書けます!

 

【入門】Terraformの基本コマンドまとめ【AWS CLI】

みなさんAWSは使っていますか?? 今回はAWSのInfrastructure as Code(IaC)であるTerraformについて、超基本のコマンドをまとめていきます。   インフラの ...

続きを見る

 

よく読まれている記事

1

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

2

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

3

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

-AWS, プログラミング
-, ,

Copyright© クラインの備忘壺 , 2019 All Rights Reserved.