Pocket

前回の続きより、

[AWS][Python]Lambdaでタグを判別して各サービスを削除する(EC2/EIP/EBS/ELB/ALB/RDS/S3/CloudFront)

S3も同様にタグで判別して削除してやろうとPython書いていたのだが、
すべてのバケットのNameを出力させようとしたら
こんなエラーが出た。

An error occurred (NoSuchTagSet) when calling the GetBucketTagging operation:
The TagSet does not exist

S3の場合Tagにアクセスして存在しなかった場合(Tag入ってるものは出力される)、
Exception(例外)になってしまうので、try,except(エラー処理)を使ってみた。


■エラー処理/例外処理(try,except)

Pythonは例外処理の「try catch」のロジックである「try,except」を使用する。

・基本的な使い方

tryのブロックの中にある処理を行いからの例外(エラー)が発生したらexceptの処理へと移る。
例外が発生しなかった場合はexceptのブロックはパスからのtry後に進んでいく。

・流れを書いてみた

 

他にも以下のようにあるが、また今度紹介しよう。
・try,except,else
・try,except,finally

というわけでこれらを駆使して例外処理を書いてみた。


■delete-s3.py

・出力結果

問題なくS3のバケット名がダーーっと出てきた。


■ちなみにタグが空白、特定タグ以外を削除するように書くと

いい感じに処理がうまくいった。


■まとめ

今のところS3だけ例外だった。。
なぜ!?Why!!!

参考:
Pythonスタートブック
Pythonの例外処理
雑にAWSリソースにboto3でタグつけてみたのだが

Pocket

カテゴリー: AWSboto3Python

adachin

1989年生まれのSRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWS/Azureでのインフラ構築、Docker開発環境の提供、Kubernetes保守、インフラコード化、新技術の検証、リファクタリング、セキュリティ強化などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTAで未経験者にインフラのコーチング/コミュニティの運用を実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください