Как получить область текущего пользователя от boto?

Проблема:

Я пытаюсь получить область аутентифицированного пользователя от boto3.

Случай использования:

Я работаю над добавлением кеша в https://github.com/pmazurek/aws-fuzzy-finder. Я бы предпочел кэшировать результат по каждому региону.

Этот пакет использует boto для получения данных аутентификации пользователя (ключей и региона). Проблема в том, что регион никогда не передается явно пользователем, его берут из одного из многих темных мест, которые читает бото, поэтому у меня нет способа получить его.

Я попытался выполнить поиск через boto3 api и googling, но не нашел ничего подобного методу get_region или get_user_data. Возможно ли это?

Ответ 1

Вы должны уметь читать region_name из объекта session.Session, например

my_session = boto3.session.Session()
my_region = my_session.region_name

region_name в основном определяется как session.get_config_variable('region')

Ответ 2

Другой вариант, если вы работаете с клиентом boto3, это:

import boto3
client = boto3.client('s3') # example client, could be any
client.meta.region_name