Alibaba Cloud SDK for Python提供了多种方式,管理您发送请求时的客户端配置。

背景信息

Alibaba Cloud SDK for Python使用以下方式管理客户端配置。创建客户端时,按照如下管理客户端配置方式的顺序,从不同的配置环境中查找您的客户端配置值,优先级由高到低:

  1. 通过get_client接口配置客户端
  2. 通过环境变量配置客户端
  3. 使用配置文件配置客户端
  4. 客户端默认配置

通过get_client接口配置客户端

  • 方式一:您可以通过get_client接口显式传递配置值。

    get_client接口仅支持region_id以及endpoint显式传递。此处指定的region_idendpoint优先级高于任何其他指定的链式Config。示例代码如下:

    from alibabacloud import get_client
    
    ecs_client = get_client('ecs', access_key_id=access_key_id,
                            access_key_secret=access_key_secret,
                            region_id='cn-hangzhou', endpoint='ecs-cn-hangzhou.aliyuncs.com')
    response = ecs_client.describe_tags(page_size=100)
    ret = response.get('Tags')
    print(ret)
  • 方式二:您可以通过get_client接口的config参数配置客户端。

    get_client接口支持显式传递ClientConfig对象。示例代码如下:

    from alibabacloud import get_client, ClientConfig
    
    client_config = ClientConfig(region_id='cn-hangzhou', endpoint='ecs-cn-hangzhou.aliyuncs.com')
    
    ecs_client = get_client('ecs', access_key_id=access_key_id,
                            access_key_secret=access_key_secret,
                            config=client_config)
    response = ecs_client.describe_tags(page_size=100)
    ret = response.get('Tags')
    print(ret)

通过环境变量配置客户端

Alibaba Cloud SDK for Python支持从环境变量读取代理相关的配置。请参见使用网络代理

使用配置文件配置客户端

在查找配置值时,Alibaba Cloud SDK for Python还将搜索~/.alibabacloud/config.ini配置文件。以下是配置文件支持的所有配置变量:

  • region_id:要使用的地域。
  • endpoint:服务请求地址。
  • max_retry_times:单个请求的最大重试次数。
  • http_port:HTTP请求端口。
  • https_port:HTTPS请求端口。
  • connection_timeout:尝试建立连接时,抛出超时异常的时间,单位为秒。默认5秒。
  • read_timeout:尝试从连接读取时抛出超时异常的时间,单位为秒。默认10秒。
  • http_proxy:HTTP代理。
  • https_proxy:HTTPS代理。
  • user_agent:用户自定义请求头。
说明 目前文件暂不支持如下开关类接口配置。开关类接口在文件中一经配置,默认为开启。
  • enable_retry:是否使用使用重试。
  • enable_https:是否使用HTTPS,默认为True(开启)。关闭将导致您基于Alibaba Cloud SDK for Python的HTTPS服务无法启用,请慎重使用。

您可以通过在配置文件中,自定义变量值,来管理客户端配置。config.ini文件样例如下:

[default]
region_id = cn-hangzhou
endpoint = somewhere.you.will.never.get
max_retry_times = 5
http_port = 80
https_port = 443
connection_timeout = 10
read_timeout = 5
http_proxy = http://xxx
https_proxy = https://xxx
user_agent = alibabacloud

客户端默认配置

Alibaba Cloud SDK for Python提供了一系列的客户端默认配置,帮助您初始化Client。您可以通过以上三种方式修改默认值,其默认配置如下:

DEFAULT_CONFIG_VARIABLES = {
    #最大重试次数,默认3次
    'max_retry_times': 3,
    #是否重试,默认为True    
    'enable_retry': True,
    #是否开启HTTP DEBUG,默认为False
    'enable_http_debug': None,
    #是否使用HTTPS,默认为True
    'enable_https': True,
    #支持您修改请求端口,但一般不建议您修改
    'http_port': 80,    
    'https_port': 443,
    #默认使用SSL证书
    'verify': True
}