[小ネタ]Boto3で特定のサービスが対応しているリージョン一覧を取得する

boto3で特定のサービスが対応しているリージョン一覧を取得する処理について

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、大阪DI部の大澤です。

今回はBoto3で特定のサービスが対応しているリージョン一覧を取得する方法について紹介します。

import boto3
boto3.Session().get_available_regions('サービス名')

これで特定のサービスサービス名に対応しているリージョンが取れます。簡単。

例えばSageMakerが対応しているリージョンの場合だとこんな感じです。

boto3.Session().get_available_regions('sagemaker')
['ap-northeast-1',
 'ap-northeast-2',
 'ap-south-1',
 'ap-southeast-1',
 'ap-southeast-2',
 'ca-central-1',
 'eu-central-1',
 'eu-west-1',
 'eu-west-2',
 'us-east-1',
 'us-east-2',
 'us-west-1',
 'us-west-2']

注意

サービスに対応したばかりのリージョンや新しいサービスの場合には対応リージョンが取得できない可能性があります。サービスが対応している全リージョンを必ず取得しないといけないクリティカルな用途の場合には別の方法を検討する必要があります。

参考

今回の方法は特定のサービスに対応しているリージョンでしたが、全リージョンを取得する場合には以下の記事が参考になります。

Pythonでboto3を使って全リージョンで処理を回すコード書いてみた