Lambda@Edge の削除ができなかったのでその原因の調査メモ。
Lamda@Edge は、バージニアリージョンで作成する必要があるため、その他のリソースと CloudFormation のスタックがわかれてしまい、依存関係が発生して削除がしにくい状況になりがちです。
依存するスタックの更新をして、CloudFront から削除されていることを確認後、Lambda@Edge 関数を削除しようとしたけど、エラーになり一向に削除ができませんでした。
すでに参照されてないのに削除できない原因を調査するために、公式ドキュメントを検索。
Lambda@Edge 関数を削除できるのは、関数のレプリカが CloudFront によって削除された場合のみです。 ... レプリカは通常、数時間以内に削除されます。Lambda@Edge 関数のレプリカを手動で削除することはできません。
マネジメントコンソールで、CloudFront の Status
が Deployed
になっていても、「Lambda@Edge 関数のレプリカ」というのが内部的に残っている模様。
関数レプリカという状態になるのを初めて知りました。
マネジメントコンソールだと、Deployed
と表示され、処理が終わってるように見えるから騙されてしまった。
ドキュメントに従い、おとなしく小一時間まったら無事削除ができました。