google/cloud-bigquery 1.39.3 の REST 配信とトークン要求のフックは、プロキシを認識する PSR リクエストハンドラを共有できます:

$proxy = 'http://proxy.example:8080';
$http = new \GuzzleHttp\Client();
$send = static function (
    \Psr\Http\Message\RequestInterface $request,
    array $options = []
) use ($http, $proxy) {
    $options['proxy'] = $proxy;
    return $http->send($request, $options);
};

$bigQuery = new \Google\Cloud\BigQuery\BigQueryClient([
    'projectId' => $projectId,
    'httpHandler' => $send,
    'authHttpHandler' => $send,
]);

この callable は各リクエストで Guzzle の proxy オプションを設定し、HTTP プロキシ一覧から選んだ公開 HTTP エンドポイントも対象になります。コンストラクタはこの callable を httpHandler と authHttpHandler の両方に渡します。これにより REST 配信と、このフックを使う認証リクエストが対象になります。サポートされている認証情報の設定は維持してください。別のトランスポートを持つ認証情報では、そのトランスポートも確認する必要があります。

必要な直接の例外は Guzzle のサポートされるプロキシ設定で追加します。BigQuery API のエンドポイントはサービスの宛先として維持してください。apiEndpoint にプロキシのアドレスを入れると、この経路を設定するのではなく別のサービスが選ばれます。

これらは BigQueryClient のコンストラクタオプションです。独立した gRPC チャネルを設定するものではなく、別ライブラリの Google API PHP Client における Google\Client の setHttpClient インターフェースにも対応しません。

関連記事