首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >亚马逊网络服务Boto3客户端(低级)与资源(高级)

亚马逊网络服务Boto3客户端(低级)与资源(高级)
EN

Stack Overflow用户
提问于 2018-05-07 14:19:06
回答 2查看 1.5K关注 0票数 3

我正在使用亚马逊网络服务Boto3软件开发工具包进行一些自动化工作。我无法了解客户端(低级)和资源(高级)之间的区别

这里的低级(客户端)和高级(资源)有什么区别?

EN

回答 2

Stack Overflow用户

发布于 2018-05-07 17:17:14

根据我的理解,这里提到的是API编程中使用的低级和高级接口。它开始了,

代码语言:javascript
复制
high-level interface, are designed to enable the programmer to write code in shorter amount of time and to be less involved with the details of the software module or hardware device that is performing the required services. Which is in direct contrast with the other one.

low-level interface, are more detailed allowing the programmer to manipulate functions within a software module or within hardware at very granular level.

在亚马逊网络服务中,当您使用Boto3进行API编程时,客户端提供与服务API一样紧密的低级接口。这意味着,所有服务操作都将由clients.Whereas支持,参考资料提供了一个高级别接口,这意味着与客户端提供的原始低级调用不同。

票数 3
EN

Stack Overflow用户

发布于 2022-01-14 16:37:50

  1. 客户端为亚马逊网络服务提供了一个低级接口。它们的定义由botocore库中的JSON服务描述生成。botocore包在boto3和AWS CLI之间共享。

检索现有存储桶列表

s3 = boto3.client("s3") response = s3.list_buckets()

输出存储桶名称

为响应‘buckets’中的bucket打印(“Existing buckets:"):print(f'{bucket"Name"}')

与客户端相比,

  1. 资源是一个更高级别的抽象。它们是从boto库本身中的JSON资源描述生成的。例如,这是S3的资源定义。

资源提供面向对象的接口,用于与各种AWS服务进行交互。资源可以按如下方式实例化:

代码语言:javascript
复制
# S3 bucket identifier
s3 = boto3.resource("s3")
bucket = s3.Bucket(name="my_bucket")

总而言之,与客户端相比,资源是AWS服务的更高级别的抽象。资源是使用boto3的推荐模式,因为在与亚马逊网络服务交互时,您不必担心许多底层细节。因此,使用资源编写的代码往往更简单。

但是,并非所有AWS服务都提供资源。在这种情况下,除了使用客户端之外,没有其他选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50208090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档