google-cloud-platform - UnknownHostException: eu-automl.googleapis.com 从 java 应用程序调用 automl API 时
问题描述
我试图通过 java 应用程序调用 API @ POST eu-automl.googleapis.com:443/v1beta1/projects/{project_id}/locations/eu/models/{model_id}:predict 并得到以下错误 -
**Caused by: java.net.UnknownHostException: eu-automl.googleapis.com
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(Unknown Source)
at java.net.InetAddress.getAddressesFromNameService(Unknown Source)
at java.net.InetAddress.getAllByName0(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at io.grpc.internal.DnsNameResolver$JdkAddressResolver.resolveAddress(DnsNameResolver.java:646)
at io.grpc.internal.DnsNameResolver.resolveAll(DnsNameResolver.java:404)**
当我通过邮递员运行这个 api 时,它会毫无错误地通过。调用此 API 的代码:
**CredentialsProvider credentialsProvider =
FixedCredentialsProvider.create(
ServiceAccountCredentials.fromStream(
new FileInputStream(key)));
PredictionServiceSettings settings =
PredictionServiceSettings.newBuilder()
.setCredentialsProvider(credentialsProvider)
.setEndpoint("eu-automl.googleapis.com:443")
.build();
try (PredictionServiceClient client = PredictionServiceClient.create(settings)) {
// Get the full path of the model.
ModelName name = ModelName.of(projectId, "eu", modelId);
URL url = TablesPredict.class.getResource("predict.json");
InputStreamReader reader = new InputStreamReader(new FileInputStream(url.getPath()), "ASCII");
ExamplePayload.Builder builder = ExamplePayload.newBuilder();
JsonFormat.parser().merge(reader, builder);
ExamplePayload payload = builder.build();
PredictRequest request =
PredictRequest.newBuilder()
.setName(name.toString())
.setPayload(payload)
.putParams("feature_importance", "true")
.build();
PredictResponse response = client. predict(request);
}**
知道我在这里缺少什么吗?
解决方案
我在您共享的 java 代码中没有看到任何奇怪的地方,因为您按照 GCP和java文档中的描述正确指定了 EU 端点。
你能检查一下你这边的防火墙配置是否有问题吗?您可以通过简单地 ping 端点来做到这一点eu-automl.googleapis.com
推荐阅读
- python - IndexError:单个位置索引器超出范围 Fitbit Python
- php - 如何在sql server中使用TOP
- django - 对象未保存在 Celery 任务中
- node.js - 使用 prolog swipl-stdio 的基础知识
- raspberry-pi - cp 在文件完全复制之前返回
- azure-cosmosdb - 选择 Datetime 小于 30 天的数据 Cosmos Db
- python - 二维线图中的垂直线伪影
- python - 在 Heroku 上安排长时间运行的 django 批处理作业的最佳实践
- xml - 执行 resp := (HTTPRIO as iHttpCust).Customer(OrdNo) 时失败,并显示“未安装 Microsoft MSXML”
- azure - Azure terraform - 不清楚用于命令参数的变量格式