[小ネタ] boto3のSessionはリージョンの取得が簡単です

[小ネタ] boto3のSessionはリージョンの取得が簡単です

Clock Icon2025.03.26

こんにちは。サービス開発室の武田です。

以前、臼田がboto3のclientからリージョンを取得する方法を書いていました。

https://dev.classmethod.jp/articles/get-region-name-by-boto3/

そういえばsessionだとどうなのかなということで調べる機会がありました。結論からいえば、clientのようなウラワザ感のあるものではなく、素直に取得できました。

>>> import boto3
>>> session = boto3.session.Session(region_name="us-east-1")
>>> session.region_name
'us-east-1'

このsessionから作成したclientはデフォルトとしてこのリージョンが設定されています。

>>> ec2 = session.client("ec2")
>>> ec2._client_config.region_name
'us-east-1'

>>> ec2_apn1 = session.client("ec2", region_name="ap-northeast-1")
>>> ec2_apn1._client_config.region_name
'ap-northeast-1'

まとめ

複数のリージョンにまたがった処理を行おうとする場合、リージョンごとに処理を分けるということはよくあります。その際sessionclientからリージョンを取得できると便利です。必要になったらこのエントリを思い出してあげてください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.