ヤマムギ

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とかあると嬉しいですね。
(知らないだけかもしれませんが)


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , , ,

  関連記事

CloudWatchエンドポイントがIPv6に対応したのでCloudWatchエージェントからカスタムメトリクスを送信しました

追記 翌日のブログで、CloudWatchエージェントのアップデートにより、Cl …

Systems Manager セッションマネージャアクセスのCloud9(SSHなし)

作成画面 いつからできるようになっていたのか気づいてなかったのですが、Cloud …

IAMアイデンティティセンター(IIC)のList Assignment APIを確認しました

やりたいことは、IAMアイデンティティセンター(IIC)のユーザー名をキーにして …

RDSのスナップショットをS3へエクスポートが日本語マネジメントコンソールでもできるようになってました

RDSスナップショットをS3にエクスポートする新機能を試そうかと思ったのときは、 …

AWS複数アカウントのリソースをLambda(Python)から一括操作したくて

AWSの複数アカウント(30ちょい)のリソースをまとめて自動処理したくて。 とり …

Amazon Linux2のPHPを7.2から7.3へアップデートしました

WordPressのサイトヘルスの推奨に従って使っていないテーマを削除したの推奨 …

Lambda関数をPython3.6から3.9に変更

CodeGuru ProfilerでLambda関数(Python 3.9)のパ …

Amazon Location Service入門ワークショップ-ルート計算

Amazon Location Service入門ワークショップのアプリで、ルー …

AWS Summit Tokyo 2017 Day3 開場~基調講演~Dev Day Night

AWS Summit Tokyo 2017 参加2日目のDay3です。 基調講演 …

AWS Application Discovery Serviceのエージェントを実行

本来はオンプレミスのサーバーにエージェントをインストールして、自動でアプリケーシ …