在公共 Cloud Run 服务上使用 Pub/Sub

问题描述

根据 Cloud Run 的“Authenticating service-to-service”文档,要在服务上使用 Pub/SubCloud Scheduler必须禁用未经身份验证的访问,因为它们依赖由于 Cloud Run 服务的零扩展功能,因此在 HTTP 调用上。

我的服务允许内部和负载均衡器流量,并且必须对前端客户端公开可用,但它们还必须能够通过 Pub/Sub 私下相互通信。

有没有办法做到这一点?只为使用 Pub/Sub 创建单独的私有服务感觉很不自然。

解决方法

这是一个缺失的部分。您无法插入 VPC PubSub 推送订阅和 Cloud Scheduler(还有 Cloud Task、Cloud Build、Workflows 等)。几个月前我问过谷歌云,它应该很快就会被新的网络功能修复。至少在 2021 年!

因此,在您的情况下,如果您的 Cloud Run 服务可通过负载均衡器从公共互联网访问,您可以使用此公共端点来调用您想要的服务路径,从而执行该过程。

如果您的 Cloud Run in 只能从 ingress=internal 访问,那么您现在不能。