Terraform で for_each 使って loop 処理を書く
こんにちは、 @kz_morita です。
Terraform で AWS リソースなどを管理しているときに、同じリソースをまとめてつくるときに繰り返し処理に for_each などが使えそうだったのでまとめます。
for_each でループする たとえば、1 と 2 などのナンバリングされた ECS Service など作るときは以下のように変数を用意して for_each で参照することができます。
var { number = [1,2] } resource "aws_ecs_service" "ecs_service" { for_each = to_set(var.number) name = "ecs_service_${each.value}"# ecs_service_1, ecs_service_2 } each.value で値にアクセスすることができます。
上記の例では、toset で set 型にしているので、each.key でも同じ値が取得できます。
同様に map 型でも以下のようにルー処理を書くことができます。
var { number_map = { "1" = "hoge" "2" = "fuga" } } resource "aws_ecs_service" "ecs_service" { for_each = var.number_map name = "ecs_service_${each.