0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Terraform Stateで"unsupported attribute" エラーが発生した際の対処方法

Posted at

問題の背景

Terraformでリソースを terraform state rm(stateファイルからリソースを除去)しようとした際、以下のようなエラーが発生することがあります。

Error saving the state: unsupported attribute "metrics_config"

The state was not saved. No items were removed from the persisted
state. No backup was created since no modification occurred. Please
resolve the issue above and try again.

このエラーは、Terraformの状態ファイルに現在使用しているProviderやTerraformバージョンではサポートされていない属性(例:metrics_config)が残っている場合に起こります。

対処手順

ProviderやTerraformを最新版にアップデート

不要または非対応な属性が新バージョンで取り除かれている場合があります。

terraform init -upgrade
terraform plan

上記コマンドでProviderやTerraform本体を最新化し、状態とコードの整合性を確認します。

問題のリソースを先に削除

metrics_configなど問題を引き起こしているリソースを先に terraform state rm で削除します。
たとえば、aws_lambda_event_source_mapping.my_lambda_event が原因の場合:

terraform state rm module.xyz.aws_lambda_event_source_mapping.my_lambda_event

これでエラーが解消され、他のリソースを削除できるようになる場合があります。

再度該当リソースを削除

問題リソースを取り除いた後、terraform state rmを再度実行して、残りの削除対象リソースを正常に除去できるか試します。
例えば:

terraform state rm module.xyz.aws_s3_bucket.example_bucket
terraform state rm module.xyz.aws_s3_bucket_lifecycle_configuration.example_lifecycle

手動でStateファイルを修正(最終手段)

上記方法で解決できない場合は、状態ファイルを手動で編集します。

terraform state pull > state.json

state.jsonをエディタで開き、metrics_config等の該当属性を削除してください。その後、

terraform state push state.json

で修正した状態ファイルを反映します。

対処結果の例

以下は、Providerアップデート後に問題リソースを削除し、他のリソースも正常に削除できるようになった例です。

terraform init -upgrade
terraform state rm module.xyz.aws_lambda_event_source_mapping.my_lambda_event
terraform state rm module.xyz.aws_s3_bucket.example_bucket
terraform state rm module.xyz.aws_s3_bucket_lifecycle_configuration.example_lifecycle
...

このように、Providerのアップデートと問題リソースの事前除去によって、unsupported attributeエラーを回避し、Terraformの状態ファイルを正常な状態に戻すことができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?