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

Käytä tätä bigQuery-ilmentymää REST-toiminnoissa. projectId ja credentials tulevat sovelluksen olemassa olevasta kokoonpanosta.

Tehdas luo HTTP-kuljetuksen, joka saavuttaa BigQuery API:n välittäjän kautta. API:n päätepiste pysyy kohteena; sen korvaaminen välityspalvelimen osoitteella pyytää eri palvelua. Sallittua julkisen välityspalvelimen reittiä varten BigQueryyn HTTP-välityspalvelinluettelo tarjoaa ehdokkaita InetSocketAddress-kentille.

Tunnistetietojen hankinnalla tai uusimisella voi olla oma HTTP-kuljetus, joten määritä tämä tuettu syöte, kun sen pyynnöt tarvitsevat välityspalvelinta. Nämä REST-asetukset eivät myöskään määritä erillistä gRPC-kanavaa.

Järjestelmän löytämiseksi java.net.useSystemProxies:llä on alustakohtainen toiminta eikä se takaa, että Dockerin HTTP_PROXY-arvo tulisi tämän asiakkaan reitiksi. Yllä oleva eksplisiittinen tehdas tekee valitun REST-kuljetuksen näkyväksi jo rakennusvaiheessa.

Aiheeseen liittyvät artikkelit