ソフトウェア開発において、プロキシは機能やリソースへのアクセスを制御するための中間者として機能します。プロキシを使用すると、元のコードを変更することなく、権限チェック、操作ログ、キャッシュデータ、遅延読み込みなどの機能を実装できます。このアプローチにより、プログラムのセキュリティ、速度、保守性、拡張性が向上します。この Topic では、V2.0 Go SDK のプロキシを設定する方法について説明します。
プロキシの種類
HTTP プロキシ、HTTPS プロキシ、または SOCKS5 プロキシを設定できます。アプリケーションには 1 種類のプロキシのみを選択することをお勧めします。
プロキシの種類 | 説明 |
HTTP プロキシ | httpProxy パラメーターを使用して、プロキシサーバーのアドレスとポートを設定します。フォーマットは |
HTTPS プロキシ | httpsProxy パラメーターを使用して、プロキシサーバーのアドレスとポートを設定します。フォーマットは |
SOCKS5 プロキシ | SOCKS5 プロキシを使用するには、socks5Proxy と Socks5NetWork の両方のパラメーターを設定します。socks5Proxy を使用して、プロキシサーバーのアドレスとポートを |
プロキシサーバーで身分認証が必要な場合は、IP アドレスの前にユーザー名とパスワードを追加します。フォーマットは http://<user>:<password>@<IP アドレス>:<ポート> または socks5://<user>:<password>@<IP アドレス>:<ポート> です。
HTTP または HTTPS プロキシを使用する場合、noProxy パラメーターを使用して、プロキシをバイパスするアドレスのリストを指定できます。複数のアドレスはカンマで区切ります。ドメイン名と IP アドレスの両方を使用できます。
プロキシ設定メソッド
プロキシ設定は、RuntimeOptions 設定、Config 設定、環境変数設定の順に優先されます (優先度の高い順)。
環境変数を使用してプロキシを設定します。
説明環境変数は SOCKS5 プロキシ設定パラメーターではサポートされていません。
HTTP_PROXYまたはhttp_proxy環境変数を使用して、プロキシサーバーのアドレスを指定します。HTTPS_PROXYまたはhttps_proxy環境変数を使用して、プロキシサーバーのアドレスを指定します。NO_PROXYまたはno_proxy環境変数を使用して、プロキシをバイパスするアドレスのリストを指定します。
実行時パラメーター (RuntimeOptions) を使用してプロキシを設定します。この設定は、これらの実行時パラメーターを使用するリクエストにのみ適用されます。
import ( util "github.com/alibabacloud-go/tea-utils/v2/service" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" "github.com/alibabacloud-go/tea/tea" ) config := &openapi.Config{ Protocol: tea.String("https"), } runtime := &util.RuntimeOptions{ // 必要に応じてリクエストプロトコル (Protocol) を変更します。httpsProxy は HTTPS プロトコルでのみ有効で、httpProxy は HTTP プロトコルでのみ有効です。 HttpProxy: tea.String("http://127.0.0.1:9898"), HttpsProxy: tea.String("http://127.0.0.1:8989"), NoProxy: tea.String("127.0.0.1,localhost"), // SOCKS5 プロキシ // Socks5Proxy: tea.String("socks5://127.0.0.1:8989"), // Socks5NetWork: tea.String("tcp"), }Alibaba Cloud プロダクトのクライアントインスタンスを初期化するときに、Config でプロキシを設定します。この設定はすべてのリクエストに適用されます。
次のコードに例を示します。
import ( openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" "github.com/alibabacloud-go/tea/tea" ) config := &openapi.Config{ // httpsProxy は HTTPS プロトコルでのみ有効で、httpProxy は HTTP プロトコルでのみ有効です。 Protocol: tea.String("https"), // HTTP プロキシ HttpProxy: tea.String("http://127.0.0.1:9898"), // HTTPS プロキシ HttpsProxy: tea.String("http://127.0.0.1:8989"), NoProxy: tea.String("127.0.0.1,localhost"), // SOCKS5 プロキシ // Socks5Proxy: tea.String("socks5://127.0.0.1:8989"), // Socks5NetWork: tea.String("tcp"), }
関連ドキュメント
詳細については、「HTTP プロキシ設定の実践」をご参照ください。