0

i tried to call to the API @ POST eu-automl.googleapis.com:443/v1beta1/projects/{project_id}/locations/eu/models/{model_id}:predict via java application and getting error below -

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

When i run this api via postman then it's pass without error. The code which call to this 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);
}**

Any idea what am i missing here?

itroulli
  • 2,044
  • 1
  • 10
  • 21
barak
  • 11
  • 2

1 Answers1

0

I do not see anything strange in the java code you shared since you are specifying correctly the EU endpoint as described in the GCP and in the java documentation.

Can you check if there is a problem with the firewall configuration on your side? You can do this by simply pinging the endpoint eu-automl.googleapis.com

juferafo
  • 537
  • 3
  • 12