boto3.Session().client和boto3.client有什么区别



ab之间有什么区别?

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

两者似乎都有效,但对于变体a,我在mypy中得到以下错误:

模块没有属性"会话";

这似乎适用于所有服务(s3、ssm、sts…(。

如果两者相同,这可能取决于版本吗?

boto3.client("s3")使用默认会话创建客户端。与相同

boto3.DEFAULT_SESSION.client('s3')

boto3.Session()创建新会话。由于没有给定任何参数,因此创建的对象将等效于默认会话。如果您想使用新凭据配置文件,通常您会创建新会话,例如

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

CCD_ 7是不同的,因为它们是CCD_。

要解决mypy问题,可以尝试以下操作。

import boto3.session
a = boto3.session.Session().client("s3")

如果这有帮助,请告诉我!

最新更新