Pythonでboto3を使って全リージョンで処理を回すコード書いてみた
こんにちは、臼田です。
皆さん、Pythonしてますか?
今回は全リージョンに対して処理を回す機会があったので、作成したPythonのコードを共有します。
コード
コードは下記のとおりです。2.7.10と3.6.1で動くことは確認しています。
1 2 3 4 5 6 7 8 | import boto3ec2 = boto3.client('ec2')regions = map(lambda x: x['RegionName'], ec2.describe_regions()['Regions'])for region in regions: print(region) ec2 = boto3.client('ec2', region_name=region) |
出力結果はこんな感じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $ python iterate_all_regions.pyap-south-1eu-west-3eu-west-2eu-west-1ap-northeast-2ap-northeast-1sa-east-1ca-central-1ap-southeast-1ap-southeast-2eu-central-1us-east-1us-east-2us-west-1us-west-2 |
現状では15リージョンあるのできちんと全てのリージョンが取得できていることが確認できると思います。
あんまり解説する必要もないかもしれませんが少し説明します。
ec2.describe_regions()では利用可能なリージョン名と各リージョンのエンドポイントが返ってきます。
その中からリージョン名を抜き出して、mapでリストにしています。
実際の処理は書いてある通り、clientの宣言時にregion_nameを指定することにより各リージョンで処理が可能です。
まとめ
書いてみて、割と使う機会がありそうだなーと思ったのでブログにしてみました。
ぜひご活用下さい。