全てのモジュールに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
この記事を書いた人
T.Nakamura
T.Nakamura
AIが大好きなクラウドエンジニア。IT業界歴10年以上。標準化と効率化を追求している。技術ネタを発信中。フォローお気軽にどうぞ!フォローはこちら

カテゴリ

タグ