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

Uża din l-istanza bigQuery għall-operazzjonijiet REST. projectId u credentials ġejjin mill-konfigurazzjoni eżistenti tal-applikazzjoni.

Il-fabbrika toħloq it-trasport HTTP li jasal għall-API ta' BigQuery permezz tal-intermedjarju. Il-punt tat-tmiem tal-API jibqa' d-destinazzjoni; jekk tibdlu bl-indirizz tal-proxy qed titlob servizz differenti. Għal rotta tal-proxy pubbliku permessa lejn BigQuery, il-lista tal-proxy HTTP tipprovdi kandidati għall-oqsma InetSocketAddress.

L-akkwist jew it-tiġdid tal-kredenzjali jista' jkollu t-trasport HTTP tiegħu, għalhekk ikkonfigura dak l-input appoġġjat meta t-talbiet tiegħu jkunu jeħtieġu l-proxy. Dawn l-għażliet REST lanqas ma jikkonfiguraw kanal gRPC indipendenti.

Għall-iskoperta tas-sistema, java.net.useSystemProxies għandu mġiba speċifika għall-pjattaforma u ma jiggarantixxix li valur Docker HTTP_PROXY isir ir-rotta ta' dan il-klijent. Il-fabbrika espliċita hawn fuq tagħmel it-trasport REST magħżul viżibbli diġà waqt il-bini.

Artikli relatati