web-dev-qa-db-ja.com

Terraform-モジュールのリファクタリング:エラー:プロバイダー設定がありません

私はいくつかのTerraformモジュールをリファクタリングしていて、

Error: Provider configuration not present

To work with
module.my_module.some_resource.resource_name its
original provider configuration at
module.my_module.provider.some_provider.provider_name is required, but it
has been removed. This occurs when a provider configuration is removed while
objects created by that provider still exist in the state. Re-add the provider
configuration to destroy
module.my_module.some_resource.resource_name, after
which you can remove the provider configuration again.

そのリソースをtfstateファイルから削除してから、新しいtf構成で再度追加する必要があるようです。

いくつかのモノリシックコードをリファクタリングしているので、これらの何百ものError: Provider configuration not presentメッセージ。

削除して再度追加するためのショートカットはありますか?

3
Snowcrash

破棄したいモジュール内の一時的なリソースをコメントアウトし、レクリエーション時にリソースのコメントを外し、以下の手順に従ってエラーを回避できます。

モジュールからプロバイダーを削除し、モジュールにプロバイダーを明示的に渡します。

module "pass_provider" {
  source = "../module"
   providers = {
    aws = aws
  }
}

エイリアスでプロバイダーを渡す、

module "pass_provider_alias" {
  source = "../module"

   providers = {
    aws = "aws.alias_name"
  }
}
1
Piyush Sonigra
  1. 古い状態ファイルと.terraformフォルダを削除します。
  2. 再度terraform terraform initを初期化

enter image description here

0
Prashanth Sams