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 ట్రాన్స్పోర్ట్ను నిర్మాణ సమయంలోనే కనిపించేలా చేస్తుంది.