Atsushi2022の日記

データエンジニアリングに関連する記事を投稿してます

Terraform の for 文

Terraformのfor_each文はよく使うけれど、for文はほとんど使ったことがないので、試しにマップ型をfor文に渡してifフィルターをしてみた。

locals {
  names ={
    foo = "abc"
    bar = "def"
    baz = "ghi"
  }
}

output "sample" {
  value = local.names
}

output "sample1" {
  value = {for k, v in local.names : v => upper(k) }
}

output "sample2" {
  value = {for k, v in local.names : k => v }
}

output "sample3" {
  value = {for k, v in local.names : k => v if (k == "foo" || k == "baz")}
}

表示結果

Outputs:

sample = {
  "bar" = "def"
  "baz" = "ghi"
  "foo" = "abc"
}
sample1 = {
  "abc" = "FOO"
  "def" = "BAR"
  "ghi" = "BAZ"
}
sample2 = {
  "bar" = "def"
  "baz" = "ghi"
  "foo" = "abc"
}
sample3 = {
  "baz" = "ghi"
  "foo" = "abc"
}