本指南比较了部署函数的最新和原始 Google Cloud 选项。如果您之前使用 Cloud Functions API 创建了函数,并且正在改用 Cloud Run Admin API,本页面将对您有所帮助。本页介绍了几个方面的关键区别,例如概念、配置、部署以及触发器和重试。
比较
Cloud Run functions 有两个版本:
Cloud Run functions,可通过以下任一方式创建:
- Cloud Run Admin API(推荐):使用此 API 创建的函数(例如,使用 Google Cloud 控制台、
gcloud run
、REST API 或 Terraform 创建的函数)会作为服务部署在 Cloud Run 上。 - Cloud Functions v2 API:使用此 API(例如,使用
gcloud functions
、REST API 或 Terraform)创建的函数可以使用 Cloud Run Admin API 和 Cloud Functions v2 API 进行管理。使用此 API 时,您可以在部署函数时指定触发器。了解如何分离 v2 API 函数,以便仅使用 Cloud Run Admin API 环境进行管理。
- Cloud Run Admin API(推荐):使用此 API 创建的函数(例如,使用 Google Cloud 控制台、
Cloud Run 函数(第 1 代)(以前称为 Cloud Functions [第 1 代])是函数的原始版本,具有有限的事件触发器和可配置性。
通过直接将函数部署到 Cloud Run,您的函数将自动构建为容器并部署为 Cloud Run 服务。
概念
下表总结了函数的概念差异。
Cloud Run 函数 | Cloud Run functions(第 1 代) | |
---|---|---|
商品的旧名称 | Cloud Functions (第 2 代) | Cloud Functions (第 1 代) |
资源模型 | 函数是从源代码部署的 Cloud Run 服务 | 从源代码部署函数 |
函数类型术语 |
|
|
分配的 HTTPS 网址 | run.app 使用 Cloud Functions v2 API 创建的函数也具有 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 代) | |
---|---|---|
请求超时 |
|
|
实例大小 | 最多搭载 4 个 vCPU,提供最高 16 GiB 的 RAM | 最多搭载 2 个 vCPU,提供最高 8 GB 的 RAM |
并发 | 每个函数实例最多 1,000 个并发请求 | 每个函数实例 1 个并发请求 |
流量分配 | 支持 | 不支持 |
部署
自 2024 年 8 月起,您可以使用 Cloud Run 部署和管理使用 Cloud Functions v2 API 创建的函数。此次变更的影响如下:
- 函数元数据(例如运行时 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 |
|
|
Terraform |
|
触发器和重试
下表比较了函数的触发器和重试:
Cloud Run 函数 | Cloud Run functions(第 1 代) | |
---|---|---|
触发和调用函数 | 对于使用 Cloud Run Admin API 创建的函数,您可以在 Google Cloud 控制台中在部署函数时指定触发器,也可以在使用 gcloud CLI 部署函数后指定触发器。 对于使用 Cloud Functions v2 API 创建的函数,您可以在函数部署过程中指定触发器。 |
您可以在函数部署中指定触发器。 |
事件类型 | 支持 Eventarc 所支持的任何事件类型,包括通过 Cloud Audit Logs 提供的 90 多个事件源。 | 直接支持来自 7 个来源的事件。 |
重试 | 对于使用 Cloud Run Admin API 创建的函数,请更新 Eventarc 中的重试政策,并在 Pub/Sub 中配置死信主题。 对于使用 Cloud Functions v2 API 创建的函数,您可以在函数部署过程中使用 --retry 标志指定重试次数。
|
您可以在函数部署中使用 --retry 标志指定重试。 |
分离函数
使用 Cloud Functions v2 API(例如,使用 gcloud functions
、REST API 或 Terraform)创建的函数可以从其现有 API 环境中分离。分离函数后,您只能使用 Cloud Run Admin API 进行管理。如果您的工作负载需要保持在 run.googleapis.com
API 边界内(针对可靠工作负载),或者您需要确保工作负载使用 Cloud Run SKU,则可能需要执行此操作。如需了解详情,请参阅 Cloud Functions v2 API 文档中的管理函数部分。
后续步骤
- 请参阅在 Cloud Run 中部署函数的入门指南。