複雑な式を含むlocalsブロックのフォーマット
マップ、merge関数、条件式、for式を含むTerraform localsブロックを適切な揃えとインデントでフォーマットします。
Variables & Outputs
詳細な説明
localsブロックのフォーマット
localsブロックは計算値の定義、マップのマージ、複雑なデータ構造の構築を行う場所です。これらのブロックにはTerraform設定で最も複雑な式が含まれることが多く、可読性のためにフォーマットが重要です。
localsブロックの例
locals {
environment = var.environment
project = var.project_name
region = var.aws_region
common_tags = {
Environment = local.environment
Project = local.project
ManagedBy = "terraform"
Team = var.team_name
}
resource_prefix = "${local.project}-${local.environment}"
subnet_cidrs = {
public = [for i in range(3) : cidrsubnet(var.vpc_cidr, 8, i)]
private = [for i in range(3) : cidrsubnet(var.vpc_cidr, 8, i + 10)]
}
is_production = local.environment == "production"
instance_type = local.is_production ? "m5.xlarge" : "t3.medium"
}
フォーマットの詳細
- 単純な代入の揃え:
environment、project、regionの=記号が揃う - マップ値の揃え:
common_tags内でキーと値が揃う - for式:
[for i in range(3) : ...]は十分短い場合は1行に収まる - 条件式: 単純な条件のternary
? :は1行に収まる - 空行による区切り: localsの論理的なグループが空行で区切られる
ユースケース
派生値の計算、タグマップの構築、CIDRブロックの計算、環境固有の設定の定義を一元的なlocalsブロックで行う。