モジュール呼び出しと構成のフォーマット
ソース参照、バージョン制約、変数の受け渡し、プロバイダーエイリアスを含む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が先頭:
sourceとversionは常に最初の2つの属性 - グループ化された入力: 関連する入力がグループ間に空行を挟んでグループ化
- 等号の揃え: グループ内のすべての入力の
=記号が揃う - モジュール参照:
module.vpc.vpc_id参照はインラインで保持 - for_eachモジュール:
for_each使用時はsource/versionの直後に配置 - tagsが最後:
tags属性は慣例的に最後の属性
ユースケース
再利用可能なモジュールからインフラを構成し、モジュール間で出力を渡し、マルチモジュールTerraform設定でクリーンなデータフローを維持する。