Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error: 14 UNAVAILABLE: No connection established when connecting to gRPC Service

I deployed a gRPC service to Cloud Run and was given a service url of the form:

https://customer-service-random-string-ue.a.run.app

I now attempted to connect to that service from localhost using the following code:

  let client = new customer_proto.Customer("dns:customer-service-random-string-ue.a.run.app:50051", grpc.credentials.createInsecure());

but all I keep getting back is the following error:

Error: 14 UNAVAILABLE: No connection established

What can I do differently to make this work?

Thank you

like image 848
ololo Avatar asked Oct 21 '25 01:10

ololo


1 Answers

We don't know the implementation of customer_proto.Customer so it's not possible to provide a definitive answer.

It's unlikely that the method expects the endpoint to be prefixed dns:. I would expect it to want the Cloud Run service endpoint and, because gRPC doesn't have default ports, (and as I mentioned previously, Cloud Run maps services to) :443 too, i.e.

customer-service-random-string-ue.a.run.app:443

A good tool that I use to test gRPC services is gRPCurl. Postman is quite common for REST and now supports gRPC

If your service support reflection, you can:

grpcurl customer-service-random-string-ue.a.run.app:443 list

Otherwise, you'll need to reference the service's proto file(s), the service and a method (possibly with data) to test:

grpcurl \
-proto {your-proto} \
customer-service-random-string-ue.a.run.app:443 \
{package}.{Service}/{MethodName}

You can confirm that the host is defined and responds with:

nslookup customer-service-random-string-ue.a.run.app

telnet customer-service-random-string-ue.a.run.app 443
like image 123
DazWilkin Avatar answered Oct 22 '25 15:10

DazWilkin



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!