共有モジュール内でproviderブロックを定義しない
ルール
Do not define provider blocks within shared modules (provider configuration should be done only once in root module)
(サブモジュール内で provider ブロックを定義しない。provider の設定はルートモジュールで一度だけ行う)
解説
プロバイダの設定はルートモジュールで一元管理します。サブモジュール内に provider ブロックを含めると混乱のもととなるため禁止します。
サンプルコード
# ルートモジュール: ./production/providers.tf
provider "aws" {
region = "ap-northeast-1"
default_tags {
tags = {
Environment = "production"
Service = "my-service"
}
}
}
# 共有モジュール: ./modules/networking/main.tf
# providerブロックは定義しない
resource "aws_vpc" "main" {
cidr_block = var.vpc_cidr
}
参考リンク
Show Text to Share共有モジュール内でproviderブロックを定義しない https://www.tricrow.com/infrastructure/development-guidline/provider_configuration.no_provider_block.html

