provider のalies
terraform provider にはエイリアスをつけることができる。
リソース記述の中のprovider 変数にエイリアス付きで渡してあげることで、デフォルトのprovider とは別のアクセス情報を使ってリソース作成ができる。
やりたかったこと
エイリアスをつけたprovider を使って、サービス上にリソースを作っていた。
しかし、アクセス情報を分ける必要がなくなったため、デフォルトのprovider だけで良くなった。
すでにリソースは作ってしまっているので、存在しているリソースに紐づいているエイリアス付きprovider をデフォルトのprovider に置き換えたい。
何かいいコマンドないかな〜〜〜
-> terraform state replace-provider
が使えそう!
terraform state replace-provider <置き換え元のprovider> <置き換え先のprovider>
問題
早速 terraform state replace-provider
を使った。
terraform state replace-provider <provider_A>.alias <provider_A>
-> エラーが起こってしまった。(エラーメッセージの控えを紛失しました...すみません。)
どうも、エイリアスの変更にはterraform state replace-provider
は使えないらしい。残念。
やったこと
- terraform state ファイルを開き、
[<provider_A>].alias
として記載されているリソース全てを[<provider_A>]
に書き換えた - コード内のprovider の記載についてもalias を削除したデフォルトにした
- リソース記述の
provider = <provider_A>.alias
の記載を削除した
その後、terraform planを実行するとno change となった。