AWS Python SDK boto3中的基本概念与使用方法
最近在用boto3编写AWS的lamda函数,学习到了boto3中的一些基本概念与使用方法。在此进行总结。
1. boto3提供了两个级别的接口来访问AWS服务:High Level的Resource级别的接口,Low Level的Client接口。
Client级别的接口则是返回Dictionary来表示查询到的资源信息。而Resource级别的接口是对Client级别的接口进行了面向对象的封装,接口的返回值大部分都是Resource对象(如果返回值是某个Resource的信息的话),我们可以对返回的对象再进行操作(比如删除,修改等)。
2. session
session是对一组configuration的抽象表达,通过同一session调用的所有api共享一组configuration. session也是访问所有API的入口。默认的session是boto3.
所以一般通过如下代码来得到Resource级别的API对象和Client级别的API对象:
res = boto3.resource('service name')
client = boto3.client('service name')
3. resource
这是Resource级别接口里面的概念,Resource分为Service Resource和Individual Resource. Service Resource表示某个服务,而Individual Resource表示某个服务里面的资源
3.1 resource identifier
Resource的唯一标示符,一般就是id或是url。很明显Service Resource不需要identifier,因为它是通过名字标识(例如:'ec2')
3.2 attribute
其实就是Resource的属性
3.3 action
就是Resource支持的操作
3.4 subResource
Resource的子级Resource,可以通过identifier来获取Resource对象
3.5 collection
Resource的子级Resource的集合,可以对collection进行查询,筛选等(对AWS的网络请求只有在collection执行操作(遍历,转换为list, 批量处理)的时候才会产生并发出)
4. 一般使用方式
4.1 Resource级别
var serviceRes = boto3.resource('ec2') //得到Service Resource
var instance = serviceRes.create_instances(**kwargs) //执行Service Resource级别的操作
var instance = serviceRes.Instance(id) // 通过identifier得到Sub Resource(Individual Resource)
var instances = serviceRes.instances.filter(filter) // 通过filter得到一个Sub Resource的collection
instance.start() //执行Sub Resource上的操作
4.2 Client级别
var ec2Client = boto3.client('ec2') //得到对应服务的client
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· C# 中比较实用的关键字,基础高频面试题!
· 为什么AI教师难以实现
· 如何让低于1B参数的小型语言模型实现 100% 的准确率
· AI Agent爆火后,MCP协议为什么如此重要!
· 【译】Visual Studio(v17.13)中新的调试和分析特性