Se o seu ambiente rotear o tráfego de saída por um servidor proxy, configure-o antes de enviar solicitações do SDK.
Métodos de configuração
Se ambos os métodos estiverem configurados, a definição na inicialização do cliente terá prioridade sobre as variáveis de ambiente.
-
Variáveis de ambiente: abordagem mais simples para ambientes em contêineres ou de CI/CD. Defina uma ou mais das seguintes variáveis antes de iniciar a aplicação:
HTTP_PROXYouhttp_proxy: URL do proxy para solicitações HTTP. Exemplo:http://127.0.0.1:8080.HTTPS_PROXYouhttps_proxy: URL do proxy para solicitações HTTPS, com credenciais opcionais. Formato:http://<user>:<password>@<host>:<port>. Exemplo:http://user:password@127.0.0.1:8989.NO_PROXYouno_proxy: lista de endereços IP ou nomes de domínio separados por vírgulas que ignoram o proxy. Exemplo:127.0.0.1,localhost.
-
Inicialização do cliente: configure o proxy programaticamente ao inicializar um cliente do SDK. Essa configuração substitui qualquer definição de variável de ambiente.
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() { // Initialize the SDK configuration. config := sdk.NewConfig() // Use the AccessKey ID and AccessKey secret of the Resource Access Management (RAM) user. 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) } // Configure proxies on the initialized client. // Format for an authenticated proxy: http://<user>:<password>@<host>:<port> client.SetHttpsProxy("http://user:password@127.0.0.1:8989") // HTTPS proxy client.SetHttpProxy("http://127.0.0.1:8080") // HTTP proxy client.SetNoProxy("127.0.0.1,localhost") // Comma-separated IPs or domain names that bypass the proxy // Create a request. request := ecs.CreateDescribeRegionsRequest() request.Scheme = "https" // Set the request parameters. request.InstanceChargeType = "PrePaid" // The billing method of the instance. request.ResourceType = "instance" // The resource type. // Send the request and handle the response. response, err := client.DescribeRegions(request) if err != nil { fmt.Print(err.Error()) } fmt.Printf("response is %#v\n", response) }