サブモジュールにproviderやterraformブロックを含めない
ルール
Do not include provider or terraform in submodules.
(サブモジュールにproviderやterraformブロックを含めない)
解説
プロバイダー設定はルートモジュールで一括管理します。そのためサブモジュールでproviderやterraformブロックを利用してはいけません。
Terraformの公式ベストプラクティスでも推奨されている設計原則です。
サンプルコード
# production/providers.tf(ルートモジュールで定義)
terraform {
required_version = ">= 1.5.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "ap-northeast-1"
}
サブモジュールにproviderやterraformブロックを含めない https://www.tricrow.com/infrastructure/development-guidline/coding_standards.modules.no_provider.html

