内部の gRPC サービスに直接到達する必要がある場合、gRPC-Go はその経路向けの接続オプションを提供します:

conn, err := grpc.NewClient(
    "dns:///rpc.internal.example:443",
    grpc.WithTransportCredentials(transportCredentials),
    grpc.WithNoProxy(),
)

grpc のインポートは google.golang.org/grpc です。transportCredentials はアプリケーションが既に持つ credentials.TransportCredentials 設定です。err を処理し、通常のクライアントライフサイクルで conn を閉じてください。

WithNoProxy はこの ClientConn でプロキシの使用を無効にします。他のクライアントやプロセスのプロキシ環境には影響しません。宛先はアプリケーションのネットワークから直接到達できる必要があります。

WithDialer または WithContextDialer が独自の接続経路を提供する場合、このオプションは無視されます。経路の決定はそのダイアラーが担います。上流 API は実験的とされているため、インストール済みの grpc-go バージョンと照合してください。

NewClient はネットワーク接続の成功を証明せずにクライアントチャネルを作成します。後続の RPC または接続状態の結果がその証拠になります。プロキシを回避しても TLS を無効にする必要はありません。

関連記事