Συνδέστε ένα εργοστάσιο μεταφοράς διαμεσολαβητή στον πελάτη REST του BigQuery Java
Χρησιμοποιήστε το HttpTransportOptions στην υπάρχουσα διαμόρφωση έργου και διαπιστευτηρίων, με ξεχωριστή ρύθμιση μεταφοράς αν τα ίδια τα διαπιστευτήρια κάνουν αιτήματα token.
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 που φτάνει στο API του BigQuery μέσω του μεσάζοντα. Το τελικό σημείο του API παραμένει ο προορισμός· η αντικατάστασή του με τη διεύθυνση του διαμεσολαβητή ζητά άλλη υπηρεσία. Για μια επιτρεπόμενη διαδρομή δημόσιου διαμεσολαβητή προς το BigQuery, η λίστα διαμεσολαβητών HTTP παρέχει υποψηφίους για τα πεδία InetSocketAddress.
Η απόκτηση ή ανανέωση διαπιστευτηρίων μπορεί να έχει δική της μεταφορά HTTP, οπότε διαμορφώστε αυτή τη υποστηριζόμενη είσοδο όταν τα αιτήματά της χρειάζονται τον διαμεσολαβητή. Αυτές οι επιλογές REST επίσης δεν διαμορφώνουν ανεξάρτητο κανάλι gRPC.
Για την ανακάλυψη συστήματος, το java.net.useSystemProxies έχει συμπεριφορά ειδική για την πλατφόρμα και δεν εγγυάται ότι μια τιμή Docker HTTP_PROXY θα γίνει η διαδρομή αυτού του πελάτη. Το ρητό εργοστάσιο παραπάνω κάνει την επιλεγμένη μεταφορά REST ορατή κατά την κατασκευή.