Cloud 运行:我可以得到确切实例的 URL 吗?

Cloud Run: Can I get the URL of the exact instance?

是否可以获取云 运行 进程的确切实例的 URL?

我想在我的 HTTP 服务器中使用全局状态,以便用户可以使用从第一个请求返回的 URL 发出第二个 HTTP 请求。两个请求应该命中同一个实例。

因为第二个请求紧接在第一个请求之后,实例应该仍然存在。

我认为您的要求无法实现。我查看了以下关于 WebSockets 和 Cloud 运行 [link] 的文档,其中指出:

On Cloud Run, session affinity isn't available, so WebSockets requests can potentially end up at different container instances, due to built-in load balancing.

这告诉我有一个 front-end 负载平衡器,它是云 运行 请求的 public 端点,负载平衡器决定将请求发送到哪里。这意味着 哪个 back-end 容器。我感觉到这些容器实际上没有可寻址(直接)IP 地址或您可以利用的其他端点。根本没有办法在后续的 HTTP 请求中指定它应该返回到与先前请求相同的服务器实例。

这是一个限制吗?我很想说 。云 运行 的合同是它将服务 a 请求并根据需要扩展以服务这些请求......但合同中没有任何地方对状态提出任何声明服务器从请求到请求。人们应该假设每个请求到达时容器是处女。

那么你如何处理全局状态?您 在 container/WebServer 中维护它...相反,您在状态管理服务中维护它。例如 SQL 数据库(例如 Cloud SQL)、文档数据库(例如 Cloud Datastore)或 REDIS 系统(Cloud Memorystore)。所有这些服务都“作为服务进行管理”,并且可以从云 运行 个实例中访问。