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 전송을 생성 시점에 드러냅니다.