LINEで送る
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でタグつけてみたのだが

LINEで送る
Pocket

カテゴリー: AWSboto3Python

あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、他社インフラレスポンス改善、ランサーズでの副業、ansibleでのインフラコード化を推進し、未経験によるエンジニアのMENTAなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。現在はDocker開発環境の提供,AWSで新サービスのインフラ構築,PHPバージョンアップ,分析基盤を担当しておりDigdag,embulk,BigQueryを使いこなし中。

コメントを残す

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