Tengdu proxy-flutningsverksmiðju við REST-biðlara BigQuery Java
Notaðu HttpTransportOptions á núverandi uppsetningu verkefnis og skilríkja, með aðskildri flutningsuppsetningu ef skilríkin sjálf senda táknafyrirspurnir.
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();Notaðu þetta bigQuery tilvik fyrir REST-aðgerðirnar. projectId og credentials koma frá núverandi uppsetningu forritsins.
Verksmiðjan býr til HTTP-flutninginn sem nær í BigQuery API í gegnum milliliðinn. API-endapunkturinn er áfram áfangastaðurinn; að skipta honum út fyrir proxy-slóðina biður um aðra þjónustu. Fyrir leyfða almennings proxy leið til BigQuery veitir HTTP-proxylistinn frambjóðendur fyrir InetSocketAddress-reitina.
Öflun eða endurnýjun skilríkja getur haft sinn eigin HTTP-flutning, svo stilltu það studda inntak þegar fyrirspurnir þess þurfa proxyið. Þessir REST-valkostir stilla heldur ekki sjálfstæða gRPC-rás.
Fyrir kerfisuppgötvun hefur java.net.useSystemProxies hegðun sem er háð kerfisvettvangi og tryggir ekki að Docker HTTP_PROXY gildi verði leið þessa biðlara. Skýra verksmiðjan hér að ofan gerir valinn REST-flutning sýnilegan þegar honum er smíðaður.