全部產品
Search
文件中心

Alibaba Cloud SDK:代理配置

更新時間:Jul 05, 2025

在軟體開發中,代理就像是一個“中間人”,它幫我們控制對某個功能或資源的訪問。使用代理可以實現許可權檢查、記錄動作記錄、快取資料、消極式載入等功能,而不用改動原來的代碼。這樣可以讓程式更安全、運行更快,也更容易維護和擴充。本文為您介紹V2.0 Python SDK對於網路代理程式的配置方式。

代理類型

在V2.0 Python SDK中,僅支援HTTP代理。可通過http_proxyhttps_proxyno_proxy參數進行設定:

  • http_proxy用於指定Proxy 伺服器地址,僅對HTTP協議的請求生效。

  • https_proxy用於指定Proxy 伺服器地址,僅對HTTPS協議的請求生效。

  • no_proxy用於指定無需通過代理訪問的地址清單,多個地址之間用逗號分隔,支援網域名稱和IP地址格式。

代理配置方式

說明

代理配置優先順序為:RuntimeOptions配置->Config配置->環境變數,優先順序依次降低。

  • 通過運行時參數(RuntimeOptions)配置代理,僅對使用了該運行時參數的請求有效。

    範例程式碼如下:

    import os
    
    from alibabacloud_ecs20140526.client import Client as EcsClient
    from alibabacloud_ecs20140526.models import DescribeRegionsRequest
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_tea_util.models import RuntimeOptions
    
    config = Config(
        access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),
        access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
        endpoint='ecs-cn-hangzhou.aliyuncs.com',
        protocol='https',  # 請求協議與HTTP代理配置參數有關,httpsProxy僅對https協議有效,httpProxy僅對http協議有效。
    )
    ecs_client = EcsClient(config)
    
    # 在RuntimeOptions中配置代理
    runtimeOptions = RuntimeOptions(
        http_proxy='http://127.0.0.1:9898',
        https_proxy='http://user:password@127.0.0.1:8989',
        no_proxy='127.0.0.1,localhost,localdomain.com'
    )
    request = DescribeRegionsRequest()
    response = ecs_client.describe_regions_with_options(request, runtimeOptions)
    print(response.body)
    
  • 在初始化用戶端階段,通過Config類配置代理,對所有請求都生效。

    範例程式碼如下:

    import os
    
    from alibabacloud_ecs20140526.client import Client as EcsClient
    from alibabacloud_ecs20140526.models import DescribeRegionsRequest
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_tea_util.models import RuntimeOptions
    
    config = Config(
        access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),
        access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
        endpoint='ecs-cn-hangzhou.aliyuncs.com',
        protocol='https',  # 請求協議與HTTP代理配置參數有關,httpsProxy僅對https協議有效,httpProxy僅對http協議有效。
        # 代理配置
        http_proxy='http://127.0.0.1:9898',
        https_proxy='http://user:password@127.0.0.1:8989',
        no_proxy='127.0.0.1,localhost,localdomain.com'
    )
    ecs_client = EcsClient(config)
    
    runtimeOptions = RuntimeOptions()
    request = DescribeRegionsRequest()
    response = ecs_client.describe_regions_with_options(request, runtimeOptions)
    print(response.body)
    
  • 通過環境變數配置代理:

    說明

    不支援在環境變數中配置no_proxy

    • 通過環境變數參數HTTP_PROXY或http_proxy指定Proxy 伺服器地址。

    • 通過環境變數參數HTTPS_PROXY或https_proxy指定Proxy 伺服器地址。

相關文檔

代理配置相關實踐文檔,請參見HTTP代理配置實踐