診断設定がキレイに消えずにモヤモヤする #Azureリレー
2021-10-19
azblob://2022/11/11/eyecatch/2021-10-19-the-diagnostic-settings-do-not-disappear-cleanly-and-become-moody-000.jpg

結論から書くと、
診断設定はリソースグループに紐づかないため、リソースグループの削除をしても診断設定は残り続ける
です。

何が言いたいのか?

例えばTerraformでAzureリソースを構築し、診断設定も実施したとします。
ここで、「この環境作り直したいな」となった場合、 terraform destroy すればいいのですが、Terraformを見守るのが辛いなどの理由でリソースグループの削除をしてtfstateファイルを捨ててから再度 terraform apply をすると、診断設定の名前が重複してコケます。

これは、リソースグループの削除で診断設定の削除が行われないためです。
下記のissueに記載がありました。サブスクリプションに紐づいているみたいですね?

https://github.com/MicrosoftDocs/azure-docs/issues/67267

terraform destroy でリソース削除をすればいいんですが、検証で作った環境なんかはついついリソースグループ削除をしてしまい、ここでハマります。。

やってしまった時の対応

terraformでリソースの作成と診断設定の追加を実装している場合、リソースに診断設定が関連づいた状態なので、リソースが作られた後に診断設定の作成で失敗しますよね?
terraformが失敗したらAzureポータルでリソースの設定を見に行って診断設定を削除し、terraformを再実行するのが一つの手です。

結構地道ですね・・・

あとは az monitor diagnostic-settings delete を使うなど、CLI等で頑張るくらいですかね。

まとめ

リソースを頻繁に作ったり消したりする場合、診断設定の扱いに注意しましょう。
失敗しても何とかなるので、ほどほどに対処したいところです。