何度も調べているのでそろそろメモしておく
やりたいこと
var.env に入っている dev stg prod などの環境文字列を基に、共通moduleのresourceやstatementを分岐させたい( dev だけ実装したい)などのケース
そもそも分岐書く必要あるmoduleの構造がそもそもダメじゃん、みたいな話はここではナシ。そういうコードに出会った場合の対処法です。
例: 三項演算子
1 | ## var.env = "dev"の場合のみ、`Hoge = "hoge"` となる |
例: countを使ってresourceを動的に生成
1 | ## var.env = "dev"の場合のみ、 `resource "aws_ecs_service" "moge"` が生成される |
例: dynamicとfor_eachを使ってIAMのstatementを動的に生成
dynamic は、 count が使えないため、 for_each で実装します
1 | # iam_policy_documentの場合 |
dynamicは、CodePipelineの action などでも使用可能です