🐕
Terraformのimport blockでcount相当を実現する
Terraform のimport blockでcountを利用し、特定条件でのみimport blockを有効にしたい。
初めてimport blockが実装されたTerraform 1.5ではterraform blockではidは固定の文字列である必要があった。
Terraform 1.6からはidに変数が利用できるようになり、Terraform 1.7からはfor_eachが利用できるようになった。
しかしimport blockにおけるcount文はサポートされず、for_eachで十分と判断された。
以下のようなimport blockを使いたかったが対応されていない。
import {
count = var.environment == "prod" ? 1 : 0
to = aws_cloudwatch_metric_alarm.alarm[0]
id = "xxx"
}
count文が使えないのはちょっと面倒だがfor_eachでも十分代替できる。
具体的には次のように記述できる。
import {
for_each = var.environment == "prod" ? ["this"] : []
to = aws_cloudwatch_metric_alarm.alarm[0]
id = "xxx"
}
Discussion