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();

Benotzt dës bigQuery-Instanz fir d'REST-Operatiounen. projectId an credentials kommen aus der bestoender Konfiguratioun vun der Applikatioun.

D'Fabrik erstellt den HTTP-Transport, deen iwwer den Zwëschemiwwel op d'BigQuery-API kënnt. Den API-Endpunkt bleift den Zil; en duerch d'Proxy-Adress ze ersetzen freet eng aner Servicer un. Fir eng erlaabte ëffentlech Proxy-Route op BigQuery liwwert d'HTTP-Proxy-Lëscht Kandidaten fir d'InetSocketAddress-Felder.

D'Kréien oder Erneieren vun Zertifikater kann säin eegenen HTTP-Transport hunn, also konfiguréiert deen ënnerstëtzten Input, wann seng Ufroe de Proxy brauchen. Dës REST-Optiounen konfiguréieren och keen onofhängege gRPC-Kanal.

Fir d'Systementdeckung huet java.net.useSystemProxies plattformspezifescht Verhalen an garantéiert net, datt en Docker HTTP_PROXY-Wäert de Wee vun dësem Client gëtt. Déi explizit Fabrik uewen mécht den ausgewielten REST-Transport scho beim Bau sichtbar.

Ähnlech Artikelen