ヤマムギ

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 クラウドプラクティショナー」という本を書きました。

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

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

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

 - AWS , , ,

ad

ad

  関連記事

2017年、このブログ(WordPress(Amazon EC2 + RDS))で対応してきたこと

Amazon Web Services Advent Calendar 2017 …

S3インベントリ設定でインベントリファイルの作成を設定

インベントリレポートファイルはオブジェクトの一覧情報です。 日次、週次で定期作成 …

X-Ray SDK for Python でライブラリへのパッチ適用

boto3でのAWS呼び出しとrequestsでの外部API呼び出しにパッチ適用 …

AWS CodeDeployからEC2 Auto Scalingにデプロイするチュートリアル

公式チュートリアルチュートリアル: アプリケーションを CodeDeployグル …

[JapanTaxi] Athena 指向アナリティクス 〜真面目に手を抜き価値を得よ〜(AWS Summit Tokyo 2017)を聞いてきました

Athenaのユースケースとして聞きにいきましたが、最近触ってるRe:dashも …

Amazon Route 53プライベートホストゾーン設定

Amazon Route 53プライベートホストゾーンを作成してみました。 Ro …

Aurora Serverless Data APIを有効にしてQuery Editorを使ってみました

Aurora ServerlessのMySQLでData APIを有効にして作成 …

Former2で既存リソースのCloudFormationテンプレート出力を試してみた

JAWS DAYS 2020の資料確認のお手伝いを少ししてまして、「ゼロからはじ …

Kinesis Data AnalyticsをKinesis Data Streamsに接続してSQL検索する

Amazon Kinesis Data StreamsにTwitter検索データ …

AWS RDS でMySQLインスタンスを構築する

Amazon Web ServiceにはAmazon Relational Da …