表題のとおり、terraformを修正したのにterraform planしたら「No changes」と出て困ったので備忘録として解決方法を投稿しておきます。
解決法その① terraform refresh
AWS上の実物の状態を読み取って、手元のtfstateを最新情報に更新するというコマンドです。
以下のまま実行します。
terraform refresh
上記実行後、再度terraform planをして変更を検知するか確認します。
解決しなければ②へ進みます。
解決方法その② terraform import
すでにクラウド上にあるリソースを、Terraformのstate管理下に登録するコマンドです。
resource "<タイプ名>" "<リソース名>" の アドレス が terraform import で使うパスになります。
terraform import <リソースタイプ>.<リソース名> <クラウド側のID>という形だと思っておけばOK!
たとえばリソースがS3の場合はこんな感じ。
terraform import aws_s3_bucket.example my-bucket-name
上記実行後、再度terraform planをして変更を検知するか確認します。
解決しなければ③へ進みます。
解決方法その③ 一度コメントアウトする
変更したコードを一度コメントアウトし、terraform applyします。
その後コメントアウトを解除し、terraform planを実行することで変更が検知されます。
さいごに
私は毎回③をしなければ解決しないので、最初から③を実行した方が早いかもしれませんね。