python - boto3.Session().client 和 boto3.client 有什么区别?
问题描述
a
和 和有什么不一样b
?
>>> 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')
a == b
是不同的,因为这些是 的不同实例Client
。
推荐阅读
- reactjs - 组件仅在用作导出组件的根时才需要类型注释
- python - 为什么 RandomizeddSearchCV 不能与 BaggingRegressor 一起使用?
- docker - Unicode 支持 docker 中的 Odoo qweb 报告 (PDF)
- android - 改造。带有请求正文的 POST 没有响应正文
- python - 如何使用 sklearn.datasets.make_classification 在给定范围内生成合成数据?
- spring-boot - 任务:compileKotlin 失败。未解决的参考:web,未解决的参考:GetMapping
- google-data-studio - Data Studio 连接器使用两个 api 密钥进行身份验证
- javascript - 如果我执行以下操作,Cloudinary API 是否安全
- bootstrap-4 - 如何更改所选单选按钮中心圆的颜色
- python-3.x - 如何在python中分隔和排序数字?