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

REST операциялары үчүн ушул bigQuery нускасын колдонуңуз. projectId жана credentials колдонмонун учурдагы конфигурациясынан алынат.

Фабрика ортомчу аркылуу BigQuery APIге жетүүчү HTTP транспортун түзөт. API акыркы чекити барар жер бойдон калат; аны прокси дареги менен алмаштыруу башка кызматты суроону билдирет. BigQueryге уруксат берилген коомдук прокси маршруту үчүн HTTP прокси тизмеси InetSocketAddress талаалары үчүн талапкерлерди берет.

Эсептик маалыматтарды алуу же жаңыртуу өзүнүн HTTP транспортуна ээ болушу мүмкүн, ошондуктан анын суроолоруна прокси керек болгондо ошол колдоого алынган киргизүүнү жөндөңүз. Бул REST параметрлери көз карандысыз gRPC каналын да жөндөбөйт.

Системаны аныктоо үчүн java.net.useSystemProxies платформага таандык жүрүм-турумга ээ жана Docker HTTP_PROXY мааниси ушул кардардын маршруту болорун кепилдебейт. Жогорку ачык фабрика тандалган REST транспортун куруу убагында эле көрүнүктүү кылат.

Тектеш макалалар