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();REST പ്രവർത്തനങ്ങൾക്ക് ഈ bigQuery ഉപയോഗിക്കുക. projectId, credentials എന്നിവ ആപ്ലിക്കേഷന്റെ നിലവിലുള്ള കോൺഫിഗറേഷനിൽ നിന്നാണ് വരുന്നത്.
ഫാക്ടറി ഇടനിലക്കാരൻ വഴി BigQuery API-യിൽ എത്തുന്ന HTTP ട്രാൻസ്പോർട്ട് സൃഷ്ടിക്കുന്നു. API അന്തിമബിന്ദു ലക്ഷ്യസ്ഥാനമായി തുടരുന്നു; അത് പ്രോക്സി വിലാസം കൊണ്ട് മാറ്റുന്നത് മറ്റൊരു സേവനം ആവശ്യപ്പെടുന്നതാണ്. BigQuery-ലേക്കുള്ള അനുവദനീയമായ പൊതു പ്രോക്സി പാതയ്ക്ക് HTTP പ്രോക്സി പട്ടിക InetSocketAddress ഫീൽഡുകൾക്ക് സ്ഥാനാർത്ഥികൾ നൽകുന്നു.
ക്രെഡൻഷ്യലുകൾ നേടുന്നതിനോ പുതുക്കുന്നതിനോ സ്വന്തം HTTP ട്രാൻസ്പോർട്ട് ഉണ്ടാകാം, അതിനാൽ അതിന്റെ അഭ്യർത്ഥനകൾക്ക് പ്രോക്സി ആവശ്യമുള്ളപ്പോൾ ആ പിന്തുണയുള്ള ഇൻപുട്ട് ക്രമീകരിക്കുക. ഈ REST ഓപ്ഷനുകൾ സ്വതന്ത്രമായ gRPC ചാനലും ക്രമീകരിക്കുന്നില്ല.
സിസ്റ്റം കണ്ടെത്തലിന് java.net.useSystemProxies-ന് പ്ലാറ്റ്ഫോം അനുസരിച്ചുള്ള സ്വഭാവമാണ്, Docker HTTP_PROXY മൂല്യം ഈ ക്ലയന്റിന്റെ പാതയാകുമെന്ന് ഉറപ്പില്ല. മുകളിലെ വ്യക്തമായ ഫാക്ടറി തിരഞ്ഞെടുത്ത REST ട്രാൻസ്പോർട്ട് നിർമ്മാണസമയത്തുതന്നെ ദൃശ്യമാക്കുന്നു.