Boto3:Python 开发者操作 AWS 的官方 SDK

Boto3 是亚马逊 Web 服务(AWS)为 Python 提供的官方软件开发工具包。它让 Python 开发者能够通过代码操作 AWS 的各种服务,从对象存储 S3 到弹性计算 EC2,覆盖了 AWS 绝大部分产品线。

项目由亚马逊 Web 服务团队维护和发布,在 GitHub 上获得了超过 9800 颗星,是 Python 生态中连接 AWS 基础设施的标准选择。对于需要自动化管理云资源的团队来说,Boto3 几乎是必不可少的一环。

从一条河流说起

Boto(读作 boh-toh)这个名字来源于亚马逊河流域的一种淡水海豚。最初版本的 Boto 库作者 Mitch Garnaat 选择了这个名字,以此向这条河流致敬。这个命名传统延续到了今天的 Boto3。

两种编程模型

Boto3 提供了两套 API:客户端(Client)和资源(Resource)。客户端对应底层 AWS 服务 API,每个操作都与 HTTP 请求一一映射。资源则是更高层的抽象,提供了面向对象的使用方式。

以 S3 为例,使用客户端创建存储桶:

ini 复制代码
import boto3
s3_client = boto3.client('s3')
s3_client.create_bucket(Bucket='my-bucket')

使用资源接口则更直观:

ini 复制代码
s3_resource = boto3.resource('s3')
bucket = s3_resource.create_bucket(Bucket='my-bucket')

资源接口的优势在于,返回的是 Python 对象,可以直接调用方法和访问属性,代码更简洁。客户端接口则胜在功能完整,AWS 新服务和新功能通常先在客户端接口中支持。

快速上手

安装 Boto3 通过 pip 即可完成:

ruby 复制代码
$ python -m pip install boto3

使用前需要配置 AWS 凭证。在 ~/.aws/credentials 文件中设置访问密钥:

ini 复制代码
[default]
aws_access_key_id = YOUR_KEY
aws_secret_access_key = YOUR_SECRET

同时在 ~/.aws/config 中配置默认区域:

ini 复制代码
[default]
region = us-east-1

完成配置后,在 Python 中导入并使用:

python 复制代码
>>> import boto3
>>> s3 = boto3.resource('s3')
>>> for bucket in s3.buckets.all():
        print(bucket.name)

这段代码会列出当前账号下所有 S3 存储桶的名称,是大多数开发者接触 Boto3 时写的第一段程序。

版本与支持

Boto3 于 2015 年 6 月 22 日正式发布,目前处于完整支持阶段。2026 年 4 月 29 日,Boto3 结束了对于 Python 3.9 的支持,这符合 Python 软件基金会在 2025 年 10 月 31 日终止对该运行时支持的安排。

对于 SDK 主要版本的维护和支持,AWS 提供了详细的版本支持矩阵和生命周期政策。开发者可以在官方文档中查阅具体信息,了解每个版本的支持周期和迁移建议。

开发与测试

Boto3 使用 tox 运行测试,支持所有活跃的 Python 版本:

shell 复制代码
$ tox
$ tox -- unit/test_session.py
$ pytest tests/unit

项目接受社区贡献,无论是 bug 报告、新功能建议还是文档改进。提交 issue 或 pull request 前,建议先阅读 CONTRIBUTING 文档。

获取帮助

使用过程中遇到问题,可以通过以下渠道寻求帮助:

  • 在 Stack Overflow 上提问并添加 boto3 标签
  • 通过 AWS Support 提交技术支持工单
  • 确认是 bug 的话,在 GitHub 上提交 issue

Boto3 作为 AWS 官方的 Python SDK,覆盖了超过 200 项 AWS 服务,文档完善,社区活跃。如果你需要在 Python 项目中与 AWS 服务交互,Boto3 是目前最成熟的选择。

相关推荐
Oneslide10 分钟前
机械革命 单系统纯净重装Ubuntu(全盘覆盖,清空原有Windows)
后端
GetcharZp12 分钟前
告别OOM!用Go+libvips实现30000×50000超大图片的流式瓦片服务
后端·go
IT_陈寒1 小时前
JavaScript项目实战经验分享
前端·人工智能·后端
用户47949283569152 小时前
6w star,GitHub 趋势第一的 Ponytail,这个agent插件到底在火什么
前端·后端
神奇小汤圆3 小时前
2026一线大厂Java八股文精选(附答案,高质量整理)
后端
Warson_L3 小时前
LangGraph入门学习资料
后端
神奇小汤圆3 小时前
Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚
后端
kfaino4 小时前
码农的AI翻身(四)你好,我叫 Attention
人工智能·后端
lwx572804 小时前
探秘InnoDB:搞懂它的内存、线程、磁盘与日志刷盘策略
java·后端
云技纵横5 小时前
Spring Boot Actuator 被打穿:线上开了这些端点,等于裸奔
后端