ヤマムギ

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認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

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

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

 - AWS , , ,

ad

ad

  関連記事

AWS Glueチュートリアル

AWS Glueのマネジメントコンソールの左ペインの一番下にチュートリアルがあり …

kintoneに登録されたアカウントの電話番号にGoogleカレンダーの予定をAmazon Pollyが読み上げてTwilioから電話でお知らせする(AWS Lambda Python)

Google Calendar Twilio Reminder Googleカレ …

執筆環境(PyCharm, CodeCommit, CodePipeline, S3, Lambda, 署名付きURL)

2018年から、年に1回ぐらい商業本の執筆をさせていただいております。 2020 …

WordPressをAmazon CloudFrontで配信してついでにACM(AWS Certificate Manager)を使って常時SSL化する

当サイトの500と502の発生状況がドイヒーであるとの苦情をいただきまして、Am …

Amazon API GatewayをLambda(Python)で削除する

やりたいこと 特定のAWSアカウント、特定のリージョン内のAPI Gateway …

Amazon Cognito User Poolsのデモをしてみました

AWS Summit 2016 Tokyoのアップデートおっかけ会をJAWS-U …

AWS License ManagerでAMIからインスタンスの起動を制御

EC2 Image BuilderでRocket.ChatのAMIを作って起動テ …

AWS CodPipelineの実行モードの動作確認しました

AWS CodePipelineの3つの実行モード(SUPERSEDED(優先済 …

Amazon CloudWatch Syntheticsでハートビートモニタリングを実行

このブログに対してハートビートモニタリングのCanaryを実行してみました。 C …

AWS Systems Manager Session ManagerでLinuxインスタンスのRun Asサポートを有効にする

AWS Systems Manager Session Managerの設定画面 …