Отдайте REST- и auth-хукам BigQuery PHP обработчик прокси
Для google/cloud-bigquery 1.39.3 передайте один и тот же callable в httpHandler и authHttpHandler, когда обоим путям нужен посредник.
Хуки доставки REST и запроса токена в google/cloud-bigquery 1.39.3 могут совместно использовать 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 задаёт опцию proxy Guzzle для каждого запроса, включая публичный HTTP-эндпоинт, выбранный из списка HTTP-прокси, а конструктор передаёт этот callable как в httpHandler, так и в authHttpHandler. Это охватывает доставку REST и запросы аутентификации, использующие этот хук. Сохраните поддерживаемую настройку учётных данных; учётные данные с другим транспортом требуют проверки и этого транспорта.
Добавьте нужные прямые исключения через поддерживаемую конфигурацию прокси Guzzle. Оставьте эндпоинт BigQuery API целью сервиса: адрес прокси в apiEndpoint выбирает другой сервис, а не настраивает этот маршрут.
Это параметры конструктора BigQueryClient. Они не настраивают независимый канал gRPC и не делают Google\Client соответствующим интерфейсу setHttpClient в отдельной библиотеке Google API PHP Client.