🐡

【Terraform】リソースの設定の変更を無視したい場合の対応方法

2023/01/09に公開

はじめに

Terraform にて AWS リソースを tfstate に Import する際に、リソースの変更を無視するための対応を実施しました。
今回、その対応方法を記事として残したいと思います。
※こちらの対応は、aws_s3_object リソースにて実施しました。

対応を実施した際の Terraform のバージョン

v4.0.0

リソースの設定の変更を無視したい場合

リソースに以下のように記載する。

書き方
resource "リソースの種類" "リソース名" {

  lifecycle {
    ignore_changes = [
      変更を無視したい設定
    ]
  }
}
記載例
resource "aws_s3_object" "test_object" {
  bucket             = aws_s3_bucket.test_object.id
  bucket_key_enabled = false
  cache_control      = "no-cache, no-store, must-revalidate"
  content_type       = "image/png"
  etag               = "****************************"
  key                = "key.png"
  metadata           = {}
  storage_class      = "STANDARD"
  tags               = {}
  tags_all           = {}

  lifecycle {
    ignore_changes = [
      acl,
      force_destroy,
    ]
  }
}

参考情報

https://www.terraform.io/language/meta-arguments/lifecycle

https://github.com/hashicorp/terraform-provider-aws/issues/25412#issuecomment-1256313001

Discussion