繁体   English   中英

Boto3资源和客户端是否相同?什么时候使用?

[英]Are Boto3 Resources and Clients Equivalent? When Use One or Other?

Boto3 Mavens,

客户端和资源之间的功能差异(如果有)是什么?

它们在功能上是否相同?

在什么条件下你会选择调用Boto3资源与客户端(反之亦然)?

虽然我已经努力通过RTM来回答这个问题......但遗憾的是,理解两者之间的功能差异使我望而却步。

你的意见?

很多很多的感谢!

飞机Wryter

资源只是基于资源的客户端抽象。 他们不能做客户不能做的任何事情,但在许多情况下他们使用起来更好。 他们实际上有一个嵌入式客户端,用于发出请求。 缺点是它们并不总是支持100%的服务功能。

始终创建resource 它具有您需要的重要方法,例如Table 如果您碰巧需要一个client对象,它就可以使用了,只需要.meta.client

import boto3
dynamodb = boto3.resource(service_name='dynamodb', endpoint_url='http://localhost:8000')
try:
    dynamodb.create_table(...)
except dynamodb.meta.client.exceptions.ResourceInUseException:
    logging.warn('Table already exists')
table = dynamodb.Table(table_name)
response = table.get_item(...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM