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.

Tengdir greinar