Gắn một factory vận chuyển proxy vào REST client của BigQuery Java
Dùng HttpTransportOptions trên cấu hình dự án và thông tin xác thực hiện có, với thiết lập vận chuyển riêng nếu chính thông tin xác thực thực hiện các yêu cầu 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();Dùng đối tượng bigQuery này cho các thao tác REST. projectId và credentials đến từ cấu hình hiện có của ứng dụng.
Factory tạo ra vận chuyển HTTP đi tới API BigQuery qua trung gian. Điểm cuối API vẫn là đích; thay nó bằng địa chỉ proxy là yêu cầu một dịch vụ khác. Đối với tuyến proxy công khai được phép tới BigQuery, danh sách proxy HTTP cung cấp ứng viên cho các trường InetSocketAddress.
Việc lấy hoặc làm mới thông tin xác thực có thể có vận chuyển HTTP riêng, nên hãy cấu hình đầu vào được hỗ trợ đó khi các yêu cầu của nó cần proxy. Các tùy chọn REST này cũng không cấu hình một kênh gRPC độc lập.
Đối với việc phát hiện hệ thống, java.net.useSystemProxies có hành vi đặc thù theo nền tảng và không bảo đảm giá trị Docker HTTP_PROXY sẽ trở thành tuyến của client này. Factory tường minh ở trên làm cho vận chuyển REST đã chọn hiển thị ngay khi khởi tạo.