本指南比较了用于部署函数的最新和原始 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 functions | 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 functions | Cloud Run functions(第 1 代) | |
---|---|---|
请求超时 |
|
|
实例大小 | 最多搭载 4 个 vCPU,提供最高 16 GiB 的 RAM | 最多搭载 2 个 vCPU,提供最高 8 GB 的 RAM |
并发 | 每个函数实例最多 1000 个并发请求 | 每个函数实例 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 functions | Cloud Run functions(第 1 代) | |
---|---|---|
Google Cloud 控制台 | Cloud Run | Cloud Run functions(第 1 代) |
Cloud SDK |
|
|
REST API |
|
|
Terraform |
|
触发器和重试
下表比较了函数的触发器和重试:
Cloud Run functions | 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 对其进行管理。如果工作负载需要保留在 Assured Workloads 的 run.googleapis.com
API 边界内,或者需要确保工作负载使用 Cloud Run SKU,则您可能需要执行此操作。如需了解详情,请参阅 Cloud Functions v2 API 文档中的管理函数。
后续步骤
- 参阅有关在 Cloud Run 中部署函数的入门指南。