首页 > 解决方案 > 是否可以在 Cloud Run 服务中公开 5001 (HTTP) 和 5672 (TCP) 端口?

问题描述

我正在 Google Cloud 中设置解决方案。我需要一个 RabbitMQ 队列代理和一个在 .NET Core 2.2 中开发的 WebAPI。这个想法是让 WebAPI 连接到 RabbitMQ 以接收消息。

我已经用 GKE 在一个 kubernetes 集群中安装了带有 RabbitMQ 集群的 RabbitMQ,该集群是在 Marketplace 中获得的。我已经在 Cloud Run 中安装了 WebAPI。这两个组件都是以标准方式提出的,没有任何出版的特殊性。

WebAPI 使用端口 5001 进行 HTTP 流量,显然订阅 RabbitMQ 以接收消息的侦听器使用端口 5672。

问题是无法将 WebAPI 上传到 Cloud Run,显然是因为 Cloud Run 只为 HTTP 流量公开一个端口,因此另一个端口 5672 被阻止。

通过在 kubernetes 上的容器中安装相同的 WebAPI,它确实暴露了端口 5001 和 5672 并且工作正常。

是否可以将 WebAPI 发布到 Cloud Run,除了为 HTTP 流量公开端口 5001 外,还公开端口 5672(在这种情况下打开 TCP 连接),从而能够连接到 RabbitMQ?

标签: google-cloud-platformrabbitmqgoogle-cloud-runwebapi

解决方案


不。

Cloud Run(完全托管)始终通过 HTTPS 向单个端口(在:443 上)公开服务。


推荐阅读