プロキシサーバーを使用してリクエストを送信する場合は、プロキシを正しく設定する必要があります。このトピックでは、Go用Alibaba Cloud SDK V1.0でプロキシを設定する方法について説明します。これにより、プロキシサーバーを使用してリクエストデータが想定どおりに送信されるようになります。
設定方法
説明
プロキシ設定は、SDKクライアントを初期化するときの設定、環境変数を使用する設定の順に有効になります。
次のコードは、SDKクライアントを初期化するときにプロキシを設定する方法の例を示しています。
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() // Resource Access Management (RAM) ユーザーの AccessKey ID と AccessKey シークレットを使用します。 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) } // SDK クライアントを初期化するときにプロキシを設定します。 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") // プロキシを必要としない IP アドレスまたはドメイン名を設定します。 // リクエストを作成します。 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://127.0.0.1:8080。
HTTPS_PROXY または https_proxy。環境変数を http://<user>:<password>@127.0.0.1:8989 の形式で設定します。
NO_PROXY または no_proxy。環境変数を 127.0.0.1,localhost の形式で設定します。