1
votes

I'm using the python example pub/sub code from within a CentOS based Google Compute Engine instance.

https://cloud.google.com/pubsub/docs/quickstart-cli

Everything works fine if the instance has the external IP address configuration set to "Ephemeral". I can publish to my topic and pull from my subscription.

However, if I change the external IP address setting to "None" when I create my instance then the pub/sub calls eventually timeout with a DEADLINE_EXCEEDED status code.

File "pyenv/lib/python2.7/site-packages/grpc/_channel.py", line 459, in _end_unary_response_blocking raise _Rendezvous(state, None, None, deadline) google.gax.errors.GaxError: GaxError(RPC failed, caused by <_Rendezvous of RPC that terminated with (StatusCode.DEADLINE_EXCEEDED, Deadline Exceeded)>)

I can ssh to the instance without any issue. I have changed other instance settings without any difference in behavior either way which is how I narrowed the issue down to the external IP address setting.

Is there a known requirement that the client have be externally addressable?

Or do you think this could be a permissions issue?

Thanks for any suggestions.

1
A very helpful email from a Googler pointed me here: cloud.google.com/solutions/connecting-securely - Ahran Dunsmoor

1 Answers

0
votes

"None" means no IP and is different than not accessible from the internet. A setting of none will lead to their being no outbound connection to the internet either and the PubSub call will have no route and then fail.