使用 Cloud 运行 而不是 Cloud Functions 对我有好处吗?它在 GCP 中的什么位置?

Would I benefit using Cloud run instead of Cloud Functions? Where does it fit in GCP?

我使用 Cloud Functions 来满足我的大部分后端需求。 Cloud 运行 为现有 Cloud Functions 用户提供了哪些额外好处?两者都是托管的,具有自动缩放功能,处理 HTTP 并且在 GCP 中 运行。

Cloud 运行 适合 Google Cloud Platform 的什么地方?

参考资料:GCP explained - Medium

Google Cloud 运行 适合您的无服务器层,但作为一个容器。容器基础设施是为您管理的。

Cloud Functions 在支持的库、语言和运行时方面受到限制。

Cloud 运行 消除了这些限制。您可以在容器中使用支持 运行 的任何语言、库和运行时的组合。

一个限制是只有一个内部端口 $PORT 今天默认为 8080。外部支持 HTTP 和 HTTPS。 HTTP 和 HTTPS 都映射到 $PORT.

Cloud 运行 的一大优点是支持自定义 DNS 名称和自定义 SSL 证书。您可以在 Cloud 运行 上托管您的网站。作为实验,我在 Cloud 运行 上设置了 WordPress 和 Cloud SQL,并为其分配了一个带有 SSL 证书的 DNS 域名。

Cloud Functions 服务器实例处理请求串行,这是不可配置的。云 运行 实例处理请求 并行 ,并且每个实例的并行级别是可配置的。如果您了解如何最好地配置服务器实例,并考虑到您部署的代码的性能特征,这可能会为您省钱。

Cloud Functions 要求您从提供的语言和 运行不可配置的时间配置中进行选择。云 运行 允许您 运行 您想要的任何类型的后端配置,假设它只是在端口 8080 上公开一个 HTTP 端点。

Cloud Functions 提供那些选定的语言和 运行 时间配置,除了部署针对其中一种配置的代码外,您不需要执行任何其他操作。云 运行 要求您提供一个 docker 配置来建立 运行 时间环境(这需要更多工作)。

Cloud Functions 可让您针对来自各种 Cloud 和 Firebase 产品的各种事件建立触发器。云 运行(当前)可以通过 HTTP 请求、PubSub 推送和少数云产品(例如 Cloud Scheduler 和 Cloud Tasks)触发。

Cloud Functions 要求您仅 运行 在提供的托管环境中使用您的代码。云 运行 允许您在任何支持 docker 的地方使用 docker 配置和 运行 它,包括 GKE,您可以在其中获得对服务器实例的更多控制。