ヤマムギ

growing hard days.

*

AWSアカウント内のすべてのS3バケットを削除するLambda(Python)

      2020/01/19


やりたいこと

特定アカウント内のS3バケットを全部削除したいです。

  • バケット内のオブジェクト全削除
  • バケットの削除

AWS複数アカウントのリソースをLambda(Python)から一括操作したくてのLambda関数に追加して呼び出してます。

削除している環境はあくまでも、検証向けの一時アカウントですので、本番向けの大量なオブジェクトや大量なバケットが含まれる環境ではありません。

バケット内のオブジェクト全削除

クライアントAPIのlist_objects_v2で取得した各オブジェクトをループを回しながら削除しています。
バケットを削除する時に、まだオブジェクトが残ってる、とならないようにobject_not_existsのwaiterを使ってます。

バケットの削除

何回かテストで実行していたところ、バケットを削除したあとに、list_buckets()で一覧に、削除したバケットが含まれてエラーになりましたので、Bucketsのループ内でエラー発生すればcontinueでスキップしています。

とりあえずは複数バケットが削除できたのでこれでひとまず良しとします。
オブジェクトがあっても丸ごとバケットを削除する、リソースAPIとかあると嬉しいですね。
(知らないだけかもしれませんが)


最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

 - AWS , , ,

ad

ad

  関連記事

AWS EC2 インスタンスステータスのチェックで失敗して起動しなくなり復旧

EC2のインスタンスに接続出来なくなったので、AMIから作成してElastic …

特定AWSアカウント特定リージョンのCloud9環境を削除するLambda(Python)

目次 やりたいことソースコード やりたいこと 特定アカウント内特定リージョン内の …

Feedlyのフィードを自動でSlackへ投稿する(AWS Lambda , Amazon DynamoDB)

目次 やりたいこと実現方法動作ソースコードDynamoDBの設定参考 Dynam …

EC2 Amazon Linux 2 にAmazon LinuxからWordPressを移行

このブログを新しいインスタンスに移行することにしました。 2015年5月にAma …

Backlogの課題チケット更新内容をMicrosoft Teamsに通知する(AWS Lambda Python)

BacklogにSlack連携が追加されました。 ですが、私の所属している会社で …

AWS DataLake 構築ハンズオンに行ってきました

AWSJ大阪が増床されて2019年10月限定でAWS pop-up loftとい …

AWSアカウント内特定リージョン内のDynamoDBテーブルを全削除するLambda(Python)

目次 やりたいことPythonソースコード やりたいこと タイトル通りですが、特 …

AWSアカウント内のLambda関数を削除するLambda(Python)

目次 やりたいことPythonソースコード やりたいこと 特定のAWSアカウント …

webフォームからの問い合わせをRedmineに自動登録して対応状況を管理する(API Gateway + Lambda)

先日、検証目的で作成したRedmineの冗長化の一機能として、webフォームから …

EC2 Auto Recovery機能を設定しておいた

以前EC2インスタンスのリタイア対象になったこともあり、というより、やっておいて …