Koble en proxy-transportfabrikk til REST-klienten til BigQuery Java
Bruk HttpTransportOptions på den eksisterende prosjekt- og legitimasjonskonfigurasjonen, med eget transportoppsett hvis selve legitimasjonen sender tokenforespørsler.
import java.net.InetSocketAddress;
import java.net.Proxy;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.cloud.http.HttpTransportOptions;
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;
var proxy = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("proxy.example", 8080));
var httpOptions = HttpTransportOptions.newBuilder()
.setHttpTransportFactory(() ->
new NetHttpTransport.Builder().setProxy(proxy).build())
.build();
BigQuery bigQuery = BigQueryOptions.newBuilder()
.setProjectId(projectId)
.setCredentials(credentials)
.setTransportOptions(httpOptions)
.build()
.getService();Bruk denne bigQuery-forekomsten for REST-operasjonene. projectId og credentials hentes fra applikasjonens eksisterende konfigurasjon.
Fabrikken oppretter HTTP-transporten som når BigQuery API via mellomleddet. API-endepunktet forblir destinasjonen; å erstatte det med proxyadressen ber om en annen tjeneste. For en tillatt offentlig proxy-rute til BigQuery gir HTTP-proxylisten kandidater for InetSocketAddress-feltene.
Anskaffelse eller fornying av legitimasjon kan ha sin egen HTTP-transport, så konfigurer den støttede inngangen når forespørslene trenger proxyen. Disse REST-valgene konfigurerer heller ikke en uavhengig gRPC-kanal.
For systemoppdagelse har java.net.useSystemProxies plattformavhengig atferd og garanterer ikke at en Docker HTTP_PROXY-verdi blir denne klientens rute. Den eksplisitte fabrikken over gjør den valgte REST-transporten synlig allerede ved bygging.