В чем разница между boto3.Session (). Client и boto3.client? - PullRequest
1 голос
/ 10 июля 2020

В чем разница между a и b?

>>> import boto3
>>> a = boto3.Session().client("s3")
>>> b = boto3.client("s3")
>>> a == b
False

Кажется, оба работают, но для варианта a я получаю следующую ошибку с mypy:

Модуль не имеет атрибута «Сессия»

Это похоже на все службы (s3, ssm, sts, ...).

Есть может зависеть от версии, если оба одинаковые?

1 Ответ

1 голос
/ 10 июля 2020

boto3.client("s3") создает клиента с использованием сеанса по умолчанию . То же самое, что и

boto3.DEFAULT_SESSION.client('s3')

boto3.Session(), создает новый сеанс. Поскольку аргументы не указаны, созданный объект будет эквивалентен сеансу по умолчанию. Обычно вы создаете новый сеанс, если хотите использовать новый профиль учетных данных , например,

boto3.Session(profile_name='non-default-profile')

a == b разные, поскольку это разные экземпляры Client.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...