許可値付き環境名変数を定義する

contains()バリデーションで値をdev、staging、prodに制限するTerraformの環境名string変数を作成します。

Common Patterns

詳細な説明

環境名変数

環境変数はマルチ環境Terraformセットアップの基盤です。リソースの命名、サイジング、フィーチャートグル、タグ値をインフラストラクチャ全体で制御します。

変数定義

variable "environment" {
  type        = string
  description = "Deployment environment name"
  default     = "dev"

  validation {
    condition     = contains(["dev", "staging", "prod"], var.environment)
    error_message = "Environment must be one of: dev, staging, prod."
  }
}

リソース命名での使用

resource "aws_s3_bucket" "data" {
  bucket = "${var.project_name}-${var.environment}-data"
}

条件付き設定

環境変数はインフラストラクチャの多くの決定を駆動します:

locals {
  is_prod = var.environment == "prod"

  instance_count = local.is_prod ? 3 : 1
  multi_az       = local.is_prod ? true : false
  backup_enabled = local.is_prod ? true : false
  log_level      = local.is_prod ? "warn" : "debug"
}

環境別tfvarsファイル

terraform plan -var-file="environments/dev.tfvars"
terraform plan -var-file="environments/prod.tfvars"

ユースケース

デプロイターゲット(dev、staging、prod)に基づいてリソースサイジング、命名、フィーチャーフラグを変更する必要があるマルチ環境Terraform設定。

試してみる — Terraform Variable Generator

フルツールを開く