首页 阿里云SDK 开发参考 Python SDK V2.0 Python SDK SDK 客户端的初始化和请求方式

SDK 客户端的初始化和请求方式

更新时间: 2023-06-01 09:41:00

本节主要介绍升级版 SDK 对于客户端的初始化以及 OpenAPI 请求方式。

SDK 客户端初始化

升级版 SDK 中因为具备完整的参数处理、返回值处理以及请求逻辑,所以可以给不同云产品的 SDK 生成不同的 Client 并包含其产品下所有的 OpenAPI 请求方法,可以使不同云产品之间的身份及鉴权信息隔离,使用上更加安全,下面是产品 ECS 和短信服务的升级版 SDK 初始化示例:

依赖信息

说明

产品依赖在接入不同产品时需要不同的依赖声明,您可在OpenAPI门户各产品的SDK信息窗口查看。

ECS产品依赖:

pip install alibabacloud_ecs20140526==3.0.7

短信服务产品依赖:

pip install alibabacloud_dysmsapi20170525==2.0.23

代码示例

说明

本示例代码身份验证方案为配置环境变量,执行以下代码之前需先配置环境变量,了解更多请参见身份验证配置

export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id>

export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>

from alibabacloud_credentials.client import Client as CredClient   # Credentials和云产品SDK都需引入Client,此处为创建别名。
from alibabacloud_ecs20140526.client import Client as EcsClient    # 引入阿里云ECS SDK,此处以ECS产品为例。
from alibabacloud_dysmsapi20170525.client import Client as DysmsApiClient #引入阿里云短信服务 SDK,此处以短信服务产品为例。
from alibabacloud_tea_openapi.models import Config                 # 引入阿里云SDK核心包。

cred = CredClient()                  # 使用默认凭证初始化Credentials Client。
config = Config(credential=cred)
config.endpoint = 'ecs.aliyuncs.com' # 配置云产品 ECS 的服务接入地址(endpoint)
ecs_client = EcsClient(config)           # 使用Credentials Client初始化ECS Client。
config.endpoint = 'dysmsapi.aliyuncs.com' # 配置云产品短信服务的服务接入地址(endpoint)
dysmsapi_client = DysmsApiClient(config) # 使用Credentials Client初始化短信服务 Client。

OpenAPI 请求方式

升级版 SDK 中每个产品的 Client 包含了所有的 OpenAPI,所以可以指定 OpenAPI 请求方法来请求,其方法名对应 OpenAPI 首字母小写,一般有三种:

  1. 可以不用传入运行参数的请求方法。

    代码示例

    from alibabacloud_credentials.client import Client as CredClient   # Credentials和云产品SDK都需引入Client,此处为创建别名。
    from alibabacloud_ecs20140526.client import Client as EcsClient    # 引入阿里云ECS SDK,此处以ECS产品为例。
    from alibabacloud_dysmsapi20170525.client import Client as DysmsApiClient #引入阿里云短信服务 SDK,此处以短信服务产品为例。
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_ecs20140526 import models as ecs_20140526_models# 引入阿里云SDK核心包。
    
    cred = CredClient()                  # 使用默认凭证初始化Credentials Client。
    config = Config(credential=cred)
    config.endpoint = 'ecs.aliyuncs.com' # 配置云产品服务接入地址(endpoint)。
    ecs_client = EcsClient(config)           # 使用Credentials Client初始化ECS Client。
    describe_regions_request = ecs_20140526_models.DescribeRegionsRequest()
    response = ecs_client.describe_regions(describe_regions_request)
    print(response.to_map())
  2. 需要传入运行参数的请求方法。

    代码示例

    from alibabacloud_credentials.client import Client as CredClient # Credentials和云产品SDK都需引入Client,此处为创建别名。
    from alibabacloud_ecs20140526.client import Client as EcsClient # 引入阿里云ECS SDK,此处以ECS产品为例。
    from alibabacloud_dysmsapi20170525.client import Client as DysmsApiClient #引入阿里云短信服务 SDK,此处以短信服务产品为例。
    from alibabacloud_tea_openapi.models import Config # 引入阿里云SDK核心包。
    from alibabacloud_ecs20140526 import models as ecs_20140526_models
    from alibabacloud_tea_util import models as util_models
    
    cred = CredClient() # 使用默认凭证初始化Credentials Client。
    config = Config(credential=cred)
    config.endpoint = 'ecs.aliyuncs.com' # 配置云产品服务接入地址(endpoint)。
    ecs_client = EcsClient(config) # 使用Credentials Client初始化ECS Client。
    describe_regions_request = ecs_20140526_models.DescribeRegionsRequest()
    # 构造运行时参数对象
    runtimeOptions = util_models.RuntimeOptions()
    # 读取超时
    runtimeOptions.readTimeout=10000;
    # 连接超时
    runtimeOptions.connectTimeout=5000;
    # 是否自动重试
    runtimeOptions.autoretry=True;
    response = ecs_client.describe_regions(describe_regions_request)
    print(response.to_map())
  3. 需要进行文件上传的请求方法,该方法默认需要传入运行时参数,这种方法只有需要用到文件上传的 OpenAPI 才会具备。

    代码示例

    视觉智能开放平台人体人脸产品依赖:

    pip install alibabacloud_facebody20191230==4.0.9

    from alibabacloud_credentials.client import Client as CredClient   # Credentials和云产品SDK都需引入Client,此处为创建别名。
    from alibabacloud_facebody20191230.client import Client as FacebodyClient  # 引入阿里云Facebody SDK,此处以人体人脸产品为例。
    from alibabacloud_tea_openapi.models import Config    # 引入阿里云SDK核心包。
    from alibabacloud_tea_util import models as util_models
    from alibabacloud_facebody20191230 import models as facebody_20191230_models 
    
    cred = CredClient()                  # 使用默认凭证初始化Credentials Client。
    config = Config(credential=cred)
    config.endpoint = 'facebody.cn-shanghai.aliyuncs.com' # 配置云产品服务接入地址(endpoint)。
    facebody_client = FacebodyClient(config)           # 使用Credentials Client初始化ECS Client。
    detect_body_count_advance_request = facebody_20191230_models.DetectBodyCountAdvanceRequest()
    detect_body_count_advance_request.image_urlobject = open('<filepath>', 'rb')
    # 构造运行时参数对象
    runtimeOptions = util_models.RuntimeOptions()
    # 读取超时
    runtimeOptions.readTimeout=10000;
    # 连接超时
    runtimeOptions.connectTimeout=5000;
    # 是否自动重试
    runtimeOptions.autoretry=True;
    
    response = facebody_client.detect_body_count_advance(detect_body_count_advance_request, runtimeOptions)
    print(response.to_map())
阿里云首页 阿里云SDK 相关技术圈