Attacher une fabrique de transport proxy au client REST de BigQuery Java
Utilisez HttpTransportOptions sur la configuration existante de projet et d'identifiants, avec une configuration de transport distincte si les identifiants eux-mêmes émettent des requêtes de jeton.
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();Utilisez cette instance bigQuery pour les opérations REST. projectId et credentials proviennent de la configuration existante de l'application.
La fabrique crée le transport HTTP qui atteint l'API BigQuery via l'intermédiaire. Le point de terminaison de l'API reste la destination ; le remplacer par l'adresse du proxy demande un autre service. Pour une route de proxy public autorisée vers BigQuery, la liste de proxys HTTP fournit des candidats pour les champs InetSocketAddress.
L'obtention ou le renouvellement des identifiants peut avoir son propre transport HTTP ; configurez donc cette entrée prise en charge lorsque ses requêtes ont besoin du proxy. Ces options REST ne configurent pas non plus de canal gRPC indépendant.
Pour la découverte système, java.net.useSystemProxies a un comportement propre à la plateforme et ne garantit pas qu'une valeur Docker HTTP_PROXY devienne la route de ce client. La fabrique explicite ci-dessus rend le transport REST choisi visible dès la construction.