許可値付き環境名変数を定義する
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設定。