Azure SDK for Python:微软云服务的 Python 全栈工具链
Azure SDK for Python 是微软官方的 Python 开发套件,在 GitHub 上积累了超过 5500 颗 Star。它的定位很明确:让 Python 开发者能用几行代码操作 Azure 上的各种云服务。
对于用 Python 做后端或者数据处理的团队来说,这套 SDK 基本是绕不开的。存储、计算、AI、数据库,Azure 上几百个服务都通过它暴露给 Python 调用。
每个服务一个包,按需安装
Azure SDK for Python 最大的设计决策是不做大而全的单一包,而是每个服务一个独立库。存储相关的用 azure-storage-blob,AI 相关用 azure-ai-openai,消息队列用 azure-servicebus。
这样做有两个好处。一是按需安装,不会因为装一个 SDK 拉下来几百兆依赖。二是每个库可以独立发版,修 bug 不用等全局发布。
代价也有,找包名有点费劲。好在文档站上有完整的包列表,按分类筛选就行。
新老两代 API 并存
读 README 能发现一个有意思的地方:SDK 内部明确区分了"新版本"和"旧版本"的库。
新版本(New Releases)基于 azure-core 统一基础设施,共享重试、日志、认证、传输协议这些底层能力,API 风格也更一致。旧版本功能覆盖更广,但设计上没用这套新规范。
实际项目里建议直接走新版。踩过坑的都知道,旧版 SDK 的认证机制和错误处理方式跟新版不一样,混用容易出问题。
管理面库:用代码管基础设施
除了操作资源的"客户端库",Azure SDK for Python 还有一套"管理面库",包名以 azure-mgmt- 开头。客户端库管"用资源",管理面库管"建资源":创建虚拟机、配置网络、调整数据库规格,这些运维操作全部可以写成 Python 脚本。
迁移指南里提到,新版管理面库的认证方式比旧版直观,用 azure-identity 统一处理,不用每个服务单独配密钥。
需要注意
SDK 支持多个 Python 版本,有明确的版本支持策略文档。生产环境建议用稳定版(非 preview)的包,Preview 标签说明 API 还没有冻结,可能会有 Breaking Change。
另外这套 SDK 默认开启遥测,会收集使用数据发给微软。如果在意这一点,文档里有示例代码教你怎么关掉——自定义一个空的 UserAgentPolicy 子类,覆盖 on_request 方法,传给客户端构造参数即可。
适合谁用
团队用 Azure 云、后端写 Python,这套 SDK 就是日常工具。微服务里调个存储、搭个 AI 管线、把运维脚本写成 Python,都离不开它。
刚接触 Azure 的团队,建议花点时间弄清新版和旧版 SDK 的选型,这个决策用对了能少走弯路。