ヤマムギ

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入門ガイド」という本を書きました。

 - AWS , , ,

ad

ad

  関連記事

CUSTOMINEを使ってkintoneからAWS Lambdaを実行する(Cognito認証付き)

先日の記事「kintoneのカスタマイズ開発を超速にするCUSTOMINE」で書 …

Microsoft TeamsのIncoming Webhooksを使ってAWS Lambda(Python)からFeedlyの記事を自動投稿する

Microsoft Teamsの検証を始めましたので、Slackで自動化している …

AWS Organizationsからアカウントを新規作成してみて

AWS Organizationsでアカウントを新規作成することがありましたので …

EFSをEC2(Amazon Linux 2)からマウントする

Amazon Elastic File Systemが東京リージョンに来たことも …

EC2のAMIとRDSのスナップショットを他のAWSアカウントに共有してブログサイトをAWSアカウント間で引っ越す

当ブログで使用しているEC2とRDSを環境の整理のため、他のAWSアカウントへ引 …

SendGridのイベントをAPI Gateway -> Lambda(Python) -> DynamoDBに格納する

SendGridのメールイベントログはコンソールで確認出来るのは直近7日分で一括 …

[事前準備] JAWS-UG 関西IoT専門支部「マクニカkibo + AWS IoTハンズオン」

来る12/19(土)の JAWS-UG 関西IoT専門支部第一回勉強会「マクニカ …

RedmineをELB(ALB)でAutoScalingグループへ負荷分散

高可用なRedmineを作るためのELBの設定です。 高可用なRedmine R …

S3をトリガーにしたときのLambdaのリソースベースポリシー

LambdaのトリガーでS3を設定したとき、自動的にLambdaのリソースベース …

AWS Data Pipelineを使ってDynamoDBのアイテムを全件S3バケットに書き出した

ちょっと試してみたくてやってみました。 手順はこちらのチュートリアルを参考にすす …