omuronの備忘録

個人的な備忘録

Lambda@Edge が削除できなかった

Lambda@Edge の削除ができなかったのでその原因の調査メモ。

Lamda@Edge は、バージニアリージョンで作成する必要があるため、その他のリソースと CloudFormation のスタックがわかれてしまい、依存関係が発生して削除がしにくい状況になりがちです。
依存するスタックの更新をして、CloudFront から削除されていることを確認後、Lambda@Edge 関数を削除しようとしたけど、エラーになり一向に削除ができませんでした。

すでに参照されてないのに削除できない原因を調査するために、公式ドキュメントを検索。

Lambda@Edge 関数を削除できるのは、関数のレプリカが CloudFront によって削除された場合のみです。 ... レプリカは通常、数時間以内に削除されます。Lambda@Edge 関数のレプリカを手動で削除することはできません。

マネジメントコンソールで、CloudFront の StatusDeployed になっていても、「Lambda@Edge 関数のレプリカ」というのが内部的に残っている模様。
関数レプリカという状態になるのを初めて知りました。

マネジメントコンソールだと、Deployed と表示され、処理が終わってるように見えるから騙されてしまった。
ドキュメントに従い、おとなしく小一時間まったら無事削除ができました。