全てのモジュールにmain.tfを配置する
ルール
Place main.tf in every module. Empty file is acceptable
(全てのモジュールにmain.tfを配置する)
解説
全てのモジュールに必ずmain.tfを配置します。ルートモジュールであればサブモジュール呼び出しの起点となります。
ただしサブモジュールの場合はやや浮いた立ち位置になりがちです。小さなサブモジュールならmain.tfにすべて書くためいいのですが、多くのサブモジュールは<リソース名>.tf(e.g., s3.tf)のようにリソースのまとまりごとにファイルを用意するためです。この場合でもmain.tfは空のまま放置します。何も書かないからと言って消したりしません。
サンプルコード
# ./modules/networking/main.tf
# ネットワーク関連のリソースを定義
resource "aws_vpc" "main" {
cidr_block = var.vpc_cidr
enable_dns_hostnames = true
enable_dns_support = true
tags = {
Name = "${var.environment}-${var.project}-vpc"
}
}
resource "aws_internet_gateway" "main" {
vpc_id = aws_vpc.main.id
tags = {
Name = "${var.environment}-${var.project}-igw"
}
}
参考リンク
Show Text to Share全てのモジュールにmain.tfを配置する https://www.tricrow.com/infrastructure/development-guidline/repository_structure.standard.main_tf.html

