[terrafrom]フラグでリソースを作る、作らないを制御する例

スポンサーリンク

備忘録

(まとめたら結構単純になったけど、実際に悩んでいたr時はもう少し複雑なケースだった)

以下のようなケースで、リソースの管理を行いたかったので、いろいろ試行錯誤した結果をまとめる。

  • とあるリソース(ここの例では、aws_ecr_repository)を条件によって複数作成する
  • 環境変数 var.environment = true の時は、api-v2のリポジトリを作成する
  • 環境変数 var.environment = false の時は、api-v2のリポジトリは作成しない

コード

locals {
  repositories = {
    api1-v1 = {
      name                 = "api-v1"
    },
    api-v2 = var.environment ? {
      name                 = "api-v2"
    } : {},
  }
}

resource "aws_ecr_repository" "example" {
  for_each = local.repositories

  name                 = each.value.name
  image_tag_mutability = "IMMUTABLE"
  image_scanning_configuration {
    scan_on_push = true
  }
}

variable "environment" {
  description = "環境を指定します。"
  default     = false
}

コメント

タイトルとURLをコピーしました