地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【Terraform】foreachが使えた話

Terraform を使ってVPCやらIAMユーザを管理する際に一つのtfで大量にパラメータを管理するの大変そうって思って調べてたらfor_eachが比較的最近のバージョンで入ったらしく使ってみたのでメモ。loopで書くよりも取得自体は直感的にでもないけど可読性は確実に増すと思うやつ。

Resources - Configuration Language - Terraform by HashiCorp

公式ドキュメントはこの辺。

resource "aws_ssm_parameter" "ssm_parameter_app" {
  for_each = var.ssm_parameter_app_list

  name        = "/${var.env}/${lookup(each.value, "name")}"
  value       = lookup(each.value, "value")
}
variable "ssm_parameter_app_list"{
  type = map(map(string))
  default = {
      param1 = {
        name = "param1"
        value = "xxxxxxxxxxxx"
      }
      param2 = {
        name = "param2"
        value = "xxxxxxxxxxxx"
      }
       ・
       ・
      param10 = {
        name = "param10"
        value = "xxxxxxxxxxxx"
      }
   }
}

Terraformで超サクッとループでリソースを用意する方法 | Developers.IO

リストAからリストBを生成したいケースがTerraformを使ってると多いのでその辺いいやり方他にもたくさんあるので調べていきたい。(結果取得からの動的リスト京成なんかでIaCしたりするは難しそうだけど面白そう)