比较 Cloud Run functions

本指南比较了部署函数的最新选项和原始选项。 Google Cloud 如果您之前使用 Cloud Functions API 创建了函数,并且正在改用 Cloud Run Admin API,本页面将对您有所帮助。本页介绍了几个方面的关键区别,例如概念、配置、部署以及触发器和重试。

比较

Cloud Run 函数有两个版本:

  • Cloud Run 函数(以前称为 Cloud Functions (第 2 代)是函数的最新版本,您可以将其作为服务在 Cloud Run 上部署。该函数可以响应 HTTP(S) 请求,也可以响应基于 Eventarc 的触发器(例如 Pub/Sub)传播的事件。

  • Cloud Run functions(第 1 代)(以前称为 Cloud Functions [第 1 代])是函数的原始版本,具有有限的事件触发器和可配置性。

我们建议您使用当前版本的 Cloud Run 函数,因为它可让您更灵活地控制函数运行时。通过直接将函数部署到 Cloud Run,您的函数将自动构建为容器并部署为 Cloud Run 服务。

概念

下表总结了函数的概念差异。

Cloud Run 函数 Cloud Run functions(第 1 代)
商品的旧名称 Cloud Functions (第 2 代) Cloud Functions (第 1 代)
资源模型 函数是从源代码部署的 Cloud Run 服务 从源代码部署函数
函数类型术语
  • HTTP 函数
  • 所有语言运行时都支持 CloudEvents 函数(也称为事件驱动型函数)。
  • HTTP 函数
  • 只有 Ruby、.NET 和 PHP 运行时支持 CloudEvents。对于 Node.js、Go、Python 和 Java,请使用后台函数创建事件驱动型函数。
分配的 HTTPS 网址 run.app

使用 Cloud Functions API (v2) 创建的函数也具有 cloudfunctions.net 端点。
cloudfunctions.net
映像注册表 仅限 Artifact Registry Artifact Registry 或 Container Registry(已弃用)
部署的 IAM 角色
内部基础架构 Cloud Run Google 内部
定价模式 Cloud Run 价格 Cloud Run functions(第 1 代)价格

配置

Cloud Run 会将函数构建到容器中,并将其作为服务进行部署。将函数部署到 Cloud Run 后,您可以完全访问和控制函数的行为。例如,您可以启用直接 VPC、配置 GPU、使用卷挂载等。

下表总结了函数的配置差异:

Cloud Run 函数 Cloud Run functions(第 1 代)
请求超时
  • 对于 HTTP 触发的函数,最长 60 分钟
  • 对于使用 Cloud Functions API (v2) 创建的 CloudEvents 函数,最长 9 分钟
  • 最长 9 分钟
实例大小 最多搭载 4 个 vCPU,提供最高 16 GiB 的 RAM 最多搭载 2 个 vCPU,提供最高 8 GB 的 RAM
并发 每个函数实例最多 1,000 个并发请求 每个函数实例 1 个并发请求
流量分配 支持 不支持

部署

自 2024 年 8 月起,您可以使用 Cloud Run 部署和管理使用 Cloud Functions API (v2) 创建的函数。此次变更的影响如下:

  • 函数元数据(例如运行时 ID 和 build 配置)存储在 Cloud Run 服务定义中。
  • 您可以使用 Cloud Run Admin API 安全地修改函数。
  • 您可以将 Cloud Run 服务定义用作函数的真实来源。

不过,请注意,使用 Cloud Run Admin API 创建的函数无法使用 Cloud Functions API 进行修改。

下表总结了创建、部署、修改和管理函数的方式之间的差异:

Cloud Run 函数 Cloud Run functions(第 1 代)
Google Cloud 控制台 Cloud Run Cloud Run functions(第 1 代)
Cloud SDK
REST API
  • run.googleapis.com(v1 和 v2)- 适用于使用 Cloud Run Admin API 或 Cloud Functions API 创建的函数。
Terraform

触发器和重试

下表比较了函数的触发器和重试:

Cloud Run 函数 Cloud Run functions(第 1 代)
触发和调用函数 对于使用 Cloud Run Admin API 创建的函数,您可以在 Google Cloud 控制台中在部署函数时指定触发器,也可以在使用 gcloud CLI 部署函数后指定触发器。

对于使用 Cloud Functions API (v2) 创建的函数,您可以在函数部署过程中指定触发器。
您可以在函数部署中指定触发器。
事件类型 支持 Eventarc 所支持的任何事件类型,包括通过 Cloud Audit Logs 提供的 90 多个事件源。 直接支持来自 7 个来源的事件
重试 对于使用 Cloud Run Admin API 创建的函数,请更新 Eventarc 中的重试政策,并在 Pub/Sub 中配置死信主题

对于使用 Cloud Functions API v2 创建的函数,您可以在函数部署过程中使用 --retry 标志指定重试次数。
您可以在函数部署中使用 --retry 标志指定重试。

后续步骤