【问题标题】:Google Cloud Run - Does it support non http protocol for inbound request or outbound requests?Google Cloud Run - 它是否支持入站请求或出站请求的非 http 协议?
【发布时间】:2020-10-13 13:39:00
【问题描述】:

我有一个现有应用程序,我试图将其部署到谷歌云运行,但该应用程序无法连接到外部 NATS 服务。似乎 cloud run 只支持 http、websockets 和 gRPC 的出站连接和流量。应用程序似乎无法与来自云运行应用程序的二进制数据建立纯 TCP/IP 连接。

只是想找人确认一下。我找不到任何明确说明云运行的入站和出站限制的文档。

注意:我的应用可以连接到 REDIS。 感谢您的帮助。

【问题讨论】:

  • 我确实让它工作了,我有两个问题。第一个是我部署了 nats 映像而不是 nats-streaming 映像,第二个问题是 nats-streaming 容器需要与云运行应用程序位于同一 VPC 中,然后才能正常工作。因此,您可以从 Cloud Run 应用程序连接到 NATS 服务器。

标签: google-cloud-platform google-cloud-run


【解决方案1】:

没有出站协议限制。

在入站方面,Cloud Run 仅支持基于 TLS (HTTPS) 的 HTTP/1 和 HTTP/2(包括 gRPC)。也就是说,不支持服务器流式传输(例如 websocket 或流式 gRPC 调用)。

因此,您不能在 Cloud Run 上使用任意 TCP 有线协议提供服务。

【讨论】:

  • 是否有说明没有出站协议限制的文档?
  • 从云端运行的应用程序连接到 NATS 是否会违反在云端运行的应用程序的底层租户?这是否会被视为后台运行的应用程序,因为它可能正在处理来自不通过谷歌前端的 NAT 的消息?
  • 感谢 AhmetB 提供的信息,Cloud Run 应用似乎确实没有任何出站协议限制。我的问题是我需要将 Cloud Run App 和 nats-streaming 容器放在同一个 VPC 中。
【解决方案2】:

是的,根据document,Cloud Run 目前只支持 HTTP、WebSockets 和 gRPC,还有here 指出不支持 http 请求,我建议你创建一个feature request,如果请愿书赚够了人气爆棚 这个功能可以加到Cloud Run

【讨论】:

  • 感谢您提供文档链接,但文档似乎并不完整。我的云运行应用程序可以连接到 Redis,这证明支持 Web 和 gRPC 以外的出站协议。感谢关于添加功能请求的建议,如果证明不支持来自云运行应用程序的 NAT 支持,那么我将添加功能请求。
  • 文档足够清楚:“Cloud Run(全托管)目前不支持HTTP流。因此,不支持使用WebSockets和gRPC流等协议的入站请求。Cloud Run(全托管)服务支持一元 gRPC。对于出站请求,同时支持 WebSockets 和 gRPC。"为了节省时间并避免用户文档出现错误,请明确 Cloud Run 的工作原理
猜你喜欢
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 2014-05-13
  • 2020-06-24
  • 2021-12-30
  • 1970-01-01
  • 2022-01-02
  • 2018-02-25
相关资源
最近更新 更多