Internal gRPC Services

I am deploying a gRPC service however it fails to resolve the port, throwing this error:


This makes sense since I’m pretty sure Render does not support public-facing gRPC services. However, let’s say I want to have multiple internal microservices that communicate via gRPC. Despite not being able to bind to a port (note that I will also have $PORT defined), will the internal addresses still work?

I’m assuming so if I have $PORT defined, but I’d like to get a sanity check before committing to this architecture.

Thank you!

Hi Graham,

If you set a PORT environment variable that will prevent any other ports from being available internally. So as of today, if you need multiple ports exposed for internal services, you’ll need to remove the PORT environment variable.

Regards,

Matt

Thank you for the quick reply.

In this scenario, each service would be running as a separate internal service. So based on your description, this should be fine right? I haven’t read too much about users using gRPC with Render so I wanted to confirm that this is possible (note that these services are not going to be available publicly).

Hi Graham,

Yeah, that sounds like you should be fine.

The two points to just re-iterate are

  1. gRPC won’t work publicly without some additional workarounds
  2. Setting a PORT environment variable will prevent other ports from working (even for private services receiving internal traffic).

Regards,

Matt

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.