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 əməliyyatları üçün bu bigQuery nüsxəsindən istifadə edin. projectId və credentials tətbiqin mövcud konfiqurasiyasından gəlir.

Fabrik ara vasitəçi üzərindən BigQuery API-yə çatan HTTP transportunu yaradır. API son nöqtəsi təyinat olaraq qalır; onu proxy ünvanı ilə əvəz etmək başqa xidmət tələb edir. BigQuery-yə icazəli ictimai proxy marşrutu üçün HTTP proxy siyahısı InetSocketAddress sahələri üçün namizədlər təqdim edir.

Kimlik əldə etmə və ya yeniləmə öz HTTP transportuna malik ola bilər, ona görə də sorğuları proxy tələb etdikdə həmin dəstəklənən girişi konfiqurasiya edin. Bu REST seçimləri həmçinin müstəqil gRPC kanalı konfiqurasiya etmir.

Sistem aşkarlanması üçün java.net.useSystemProxies platformaya xas davranışa malikdir və Docker HTTP_PROXY dəyərinin bu müştərinin marşrutu olacağına zəmanət vermir. Yuxarıdakı açıq fabrik seçilmiş REST transportunu qurulma zamanı görünən edir.

Əlaqəli məqalələr