Si votre environnement achemine le trafic sortant via un serveur proxy, configurez-le avant d'envoyer des requêtes SDK.
Méthodes de configuration
Si les deux méthodes sont configurées simultanément, le paramètre défini lors de l'initialisation du client prévaut sur les variables d'environnement.
-
Variables d'environnement : cette approche simplifiée convient aux environnements conteneurisés ou CI/CD. Définissez une ou plusieurs des variables suivantes avant de démarrer votre application :
HTTP_PROXYouhttp_proxy: URL du proxy pour les requêtes HTTP. Exemple :http://127.0.0.1:8080.HTTPS_PROXYouhttps_proxy: URL du proxy pour les requêtes HTTPS, avec identifiants facultatifs. Format :http://<user>:<password>@<host>:<port>. Exemple :http://user:password@127.0.0.1:8989.NO_PROXYouno_proxy: liste d'adresses IP ou de noms de domaine séparés par des virgules et exclus du proxy. Exemple :127.0.0.1,localhost.
-
Initialisation du client : configurez le proxy par programmation lors de l'initialisation d'un client SDK. Ce paramètre remplace toute configuration par variables d'environnement.
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) }