UnknownHostException: eu-automl.googleapis.com при вызове API automl из приложения java - PullRequest
0 голосов
/ 20 апреля 2020

Я пытался позвонить в API @ POST eu-automl.googleapis.com:443/v1beta1/projects/ enjproject_idgoti/locations/eu/models/ndommodel_id‹:predict через приложение java и получить сообщение об ошибке ниже -

**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);
}**

Есть идеи, что мне здесь не хватает?

1 Ответ

0 голосов
/ 07 мая 2020

Я не вижу ничего странного в коде java, которым вы поделились, поскольку вы правильно указали конечную точку ЕС, как описано в GCP и в документации java.

Можете ли вы проверить, есть ли проблемы с конфигурацией брандмауэра на вашей стороне? Вы можете сделать это просто пропингом конечной точки eu-automl.googleapis.com

...