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 인터페이스와도 대응하지 않습니다.

관련 글