モジュール呼び出しと構成のフォーマット

ソース参照、バージョン制約、変数の受け渡し、プロバイダーエイリアスを含むTerraformモジュールブロックを適切な揃えでフォーマットします。

Advanced Patterns

詳細な説明

モジュールブロックのフォーマット

モジュールブロックは子モジュールへの入力を定義します。適切にフォーマットされたモジュール呼び出しにより、モジュール間のデータフローが明確になり追跡しやすくなります。

モジュール呼び出しの例

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "5.1.2"

  name = "${local.resource_prefix}-vpc"
  cidr = var.vpc_cidr

  azs             = var.availability_zones
  private_subnets = var.private_subnet_cidrs
  public_subnets  = var.public_subnet_cidrs

  enable_nat_gateway   = true
  single_nat_gateway   = var.environment != "production"
  enable_dns_hostnames = true

  tags = local.common_tags
}

フォーマット規則

  • sourceとversionが先頭: sourceversionは常に最初の2つの属性
  • グループ化された入力: 関連する入力がグループ間に空行を挟んでグループ化
  • 等号の揃え: グループ内のすべての入力の=記号が揃う
  • モジュール参照: module.vpc.vpc_id参照はインラインで保持
  • for_eachモジュール: for_each使用時はsource/versionの直後に配置
  • tagsが最後: tags属性は慣例的に最後の属性

ユースケース

再利用可能なモジュールからインフラを構成し、モジュール間で出力を渡し、マルチモジュールTerraform設定でクリーンなデータフローを維持する。

試してみる — Terraform HCL Formatter

フルツールを開く