Хуки доставки 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.

Похожие статьи