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

Օգտագործեք այս bigQuery օրինակը REST գործողությունների համար։ projectId-ը և credentials-ը գալիս են հավելվածի գոյություն ունեցող կարգաբերումից։

Ֆաբրիկան ստեղծում է HTTP տրանսպորտը, որը միջնորդի միջով հասնում է BigQuery API-ին։ API-ի վերջնակետը մնում է նպատակակետը. այն պրոքսիի հասցեով փոխարինելը պահանջում է այլ ծառայություն։ BigQuery-ին թույլատրված հանրային պրոքսիի ուղու համար HTTP պրոքսիների ցանկը տալիս է թեկնածուներ InetSocketAddress դաշտերի համար։

Հավատարմագրերի ստացումը կամ թարմացումը կարող է ունենալ իր սեփական HTTP տրանսպորտը, ուստի կարգավորեք այդ աջակցվող մուտքը, երբ նրա հարցումներին պրոքսի է պետք։ Այս REST ընտրանքները նաև անկախ gRPC ալիք չեն կարգավորում։

Համակարգի հայտնաբերման համար java.net.useSystemProxies-ն ունի հարթակին բնորոշ վարք և չի երաշխավորում, որ Docker-ի HTTP_PROXY արժեքը կդառնա այս հաճախորդի ուղին։ Վերևի բացահայտ ֆաբրիկան ընտրված REST տրանսպորտը տեսանելի է դարձնում դեռ կառուցման պահին։

Առնչվող հոդվածներ