Պրոքսի տրանսպորտի ֆաբրիկայի կցում BigQuery Java-ի REST հաճախորդին
Օգտագործեք HttpTransportOptions-ը գոյություն ունեցող նախագծի և հավատարմագրերի կարգաբերման վրա, առանձին տրանսպորտի կարգավորումով, եթե հավատարմագրերն իրենք են կատարում թոքենի հարցումներ։
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 տրանսպորտը տեսանելի է դարձնում դեռ կառուցման պահին։