自由気ままに書いちゃおう

好きなことをつらつらと・・・

【Terraform】(初心者向け)lookupの使い方

今回はlookup関数についてです。

 

■ lookup 関数とは

map のキーを指定してバリューを取り出すことができます。

lookup - Functions - Configuration Language | Terraform | HashiCorp Developer

 

■ 実例

locals {
  vpcs2_map = {
    "dev1" = "10.20"
    "dev2" = "10.30"
    "dev3" = "10.40"
    "dev4" = "10.50"
  }
  name_map = {
    "dev1" = "develop1"
    "dev2" = "develop2"
    "dev3" = "develop3"
    "dev4" = "develop4"
  }
}

resource "aws_vpc" "vpcs2_map" {
  for_each   = local.vpcs2_map
  cidr_block = "${each.value}.0.0/16"

  tags = {
    "Name" = lookup(local.name_map, each.key)
  }
}

上記の場合、

  tags = {
    "Name" = lookup(local.name_map, each.key)
  }

の部分でlookup関数を使ってます。
local.name_mapのマップの中から、each.keyで指定したキーが存在すればvalueを返します。
そのため、
each.keyが"dev1"であれば、local.name_mapの"dev1"の値(="develop1")が取得できます。

 

 

尚、for_eachが受け取る値はlocal.vpc2_map のものですが、
local.name_map のキーをlocal_vpc2_map のキーと同じにしているため、
"develop1", develop2" ,"develop3" ,"develop4" を取得することが可能です。