terraform で実行対象ファイルを除外するには? - module

Terraform において特定のファイルを除外して計画や適用を行うための直接的な機能は提供されていません。

Terraform は、デフォルトで現在のディレクトリおよびそのサブディレクトリ内の .tf という拡張子を持つすべてのファイルを読み取ります。

 

ただし、ある程度の制御は以下の方法で行うことができます。

1. **モジュールを使用する**:

除外したいリソースを別のモジュールに分けて、そのモジュールを root モジュールから呼び出さないようにします。

// main.tf
module "include_this" {
source = "./include_this"
}
// exclude_this.tf
// このファイルは main.tf から参照されないため、除外されます。

2. **条件付きリソースの作成**:

リソースを作成するかどうかを決定する変数を導入することで、特定のリソースを条件付きで除外することができます。

resource "aws_instance" "example" {
count = var.exclude_this ? 0 : 1
// ... (他の属性)
}

この方法では、terraform apply を実行する際に -var "exclude_this=true" というオプションを指定することで、リソースを除外できます。

3. **異なるディレクトリを使用する**:

除外したいファイルを別のディレクトリに移動し、terraform apply をそのディレクトリ外から実行します。

どの方法もそれぞれの利点とデメリットがありますので、プロジェクトの要件に応じて最適な方法を選択する必要があります。

 

記事タイトル検索