阿里云首页 阿里云SDK

开始使用

前言

阿里云新版 Python SDK 基于Python 3.6 以上的版本开发,是通过总结开发者在原版 Python SDK 中遇到的一系列问题后重新开发的一版 SDK。该版本 Python SDK 新增了许多特性,主要以易于用户理解,降低用户接入成本并提升 SDK 的健壮性为主。本文不仅会为大家详细介绍新版 Python SDK 与原版 Python SDK 相比所增加的新特性,也会通过介绍二者使用上的区别来为想从原版 Python SDK 升级到新版 Python SDK 的开发者提供升级指南。

新版 Python SDK 的新特性

新版 Python SDK 是基于阿里云自研的 DSL 语言[Darabonba](https://github.com/aliyun/darabonba) 生成,通过 DSL 的灵活性不仅可以进行更多的表达而且通过解析 DSL 生成的 AST 也能抹平阿里云不同产品生产的不同风格 OpenAPI 的差异轻松的实现 OpenAPI 到 SDK 的生成。通过 DSL 的方式并结合以往 Python SDK 中的问题,阿里云提供的新版 Python SDK 具备以下的特性:
  1. 解决原版 SDK 中产品 OpenAPI 风格不同(RPC或ROA)造成使用方式不一致问题,新版 SDK 中所有云产品的 SDK 使用方式相同,使用体验一致。

  2. 通过 DSL 使 SDK 具备逻辑表达能力,从而使新版 SDK 不用像原版 SDK 与 SDK Core(aliyun-python-sdk-core)耦合性高的问题,降低了开发者因为 SDK 的升级带来的开发成本。

  3. 每个云产品的 SDK 提供一个 Client 对象,通过实例化 Client 对象就可以调用云产品的所有 API。通过这样钉的方式,不仅解决了原版 SDK 单 Client 容易造成线程安全问题,同时通过该方式使每个云产品之间身份和鉴权信息隔离从而解决了用户使用原版 SDK 造成的 profile 信息在不同产品之间混用造成的权限管理问题。用户也可以根据不同的云产品 OpenAPI 的情况配置不同的参数,例如服务区域、超时时间、HTTP 代理、重试配置等。

  4. 新版 SDK 支持更复杂的 OpenAPI 使用场景,例如阿里云的人体人脸(FaceBody)等产品中需要上传图片到 OSS 以后,通过该链接对图片进行人工智能分析处理,就可以通过新版 SDK 组合上传鉴权、上传图片、图片分析三个操作从而实现对该 OpenAPI 使用的简化。

  5. 新版 Python SDK 不仅为 SDK 中的所有的 OpenAPI 请求生成相应的示例,同时也通过对 SDK 中的多个 OpenAPI 请求进行组合从而提供 SDK 的场景化示例,这样的示例不仅可以帮助开发者降低接入 SDK 的成本,同时也可以帮助开发者更好的理解云产品的业务场景。

新版SDK升级策略

// 新版
pip install alibabacloud-ecs20140526
// 原版
pip install aliyun-python-sdk-ecs

从示例中可以看出新版 SDK 的命名方式为 `alibabacloud_{产品名}{OpenAPI 版本号}`的方式命名。开发者也可以通过 [SDK信息中心](https://next.api.aliyun.com/api-tools/sdk)来查看具体产品的新版 SDK 或原版 SDK 的信息。