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

Naudokite šį bigQuery egzempliorių REST operacijoms. projectId ir credentials gaunami iš esamos programos konfigūracijos.

Gamykla sukuria HTTP transportą, kuris per tarpininką pasiekia BigQuery API. API galutinis taškas lieka paskirties vieta; pakeitus jį proxy adresu, prašoma kitos paslaugos. Leidžiamam viešojo proxy maršrutui į BigQuery HTTP proxy sąrašas pateikia kandidatus InetSocketAddress laukams.

Prisijungimo duomenų gavimas ar atnaujinimas gali turėti savo HTTP transportą, todėl sukonfigūruokite šią palaikomą įvestį, kai jos užklausoms reikia proxy. Šios REST parinktys taip pat nekonfigūruoja nepriklausomo gRPC kanalo.

Sistemos aptikimui java.net.useSystemProxies turi nuo platformos priklausantį elgesį ir negarantuoja, kad Docker HTTP_PROXY reikšmė taps šio kliento maršrutu. Aukščiau pateikta aiški gamykla padaro pasirinktą REST transportą matomą jau kuriant.

Susiję straipsniai