全部產品
Search
文件中心

Alibaba Cloud SDK:代理配置

更新時間:Jul 01, 2024

當您面臨需藉助Proxy 伺服器發送請求的情境時,正確配置代理設定顯得尤為重要。本文為您詳細介紹代理配置方式,確保您的請求能夠順利通過Proxy 伺服器進行傳輸。

代理配置方式

說明

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

  • 通過Client配置代理。

    import (
    	"fmt"
    
    	"os"
    
    	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
    	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
    	ecs "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
    )
    
    func main() {
    	// 配置運行時參數
    	config := sdk.NewConfig()
    	// 使用RAM使用者AccessKeyID和AccessKeySecret
    	credential := credentials.NewAccessKeyCredential(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
    	client, err := ecs.NewClientWithOptions("cn-hangzhou", config, credential)
    	if err != nil {
    		panic(err)
    	}
    	// 通過client配置代理
    	client.SetHttpsProxy("http://user:password@127.0.0.1:8989") // 設定 Https 代理.
    	client.SetHttpProxy("http://127.0.0.1:8080")                // 設定 Http 代理
    	client.SetNoProxy("127.0.0.1,localhost")                    // 設定代理白名單
    
    	// 建立請求
    	request := ecs.CreateDescribeRegionsRequest()
    	request.Scheme = "https"
    	// 請求參數
    	request.InstanceChargeType = "PrePaid" // 執行個體的計費方式
    	request.ResourceType = "instance"      // 資源類型
    	// 發起請求並擷取傳回值
    	response, err := client.DescribeRegions(request)
    	if err != nil {
    		fmt.Print(err.Error())
    	}
    	fmt.Printf("response is %#v\n", response)
    }
  • 通過以下環境變數配置代理。

    • HTTP_PROXY或者http_proxy。變數值格式:http_proxy為http://127.0.0.1:8080

    • HTTPS_PROXY或者https_proxy。變數值格式:https_proxy為http://<user>:<password>@127.0.0.1:8989

    • NO_PROXY或者no_proxy。變數值格式:127.0.0.1,localhost。