BigQuery PHP의 REST 및 auth 훅에 프록시 핸들러를 넘기기
google/cloud-bigquery 1.39.3에서는 두 경로 모두 중간자가 필요할 때 동일한 callable을 httpHandler와 authHttpHandler에 전달합니다.
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 인터페이스와도 대응하지 않습니다.