Collegare una factory di trasporto proxy al client REST di BigQuery Java
Usate HttpTransportOptions sulla configurazione esistente di progetto e credenziali, con un trasporto separato se le credenziali stesse effettuano richieste di token.
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();Usate questa istanza bigQuery per le operazioni REST. projectId e credentials provengono dalla configurazione esistente dell'applicazione.
La factory crea il trasporto HTTP che raggiunge l'API BigQuery tramite l'intermediario. L'endpoint dell'API resta la destinazione; sostituirlo con l'indirizzo del proxy richiede un servizio diverso. Per una rotta proxy pubblica consentita verso BigQuery, la lista di proxy HTTP fornisce candidati per i campi InetSocketAddress.
L'ottenimento o il rinnovo delle credenziali può avere un proprio trasporto HTTP, quindi configurate quell'input supportato quando le sue richieste necessitano del proxy. Queste opzioni REST non configurano nemmeno un canale gRPC indipendente.
Per l'individuazione di sistema, java.net.useSystemProxies ha un comportamento specifico della piattaforma e non garantisce che un valore Docker HTTP_PROXY diventi la rotta di questo client. La factory esplicita qui sopra rende visibile il trasporto REST scelto già in fase di costruzione.