本指南比较了部署函数的最新选项和原始选项。 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 服务 | 从源代码部署函数 |
函数类型术语 |
|
|
分配的 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 代) | |
---|---|---|
请求超时 |
|
|
实例大小 | 最多搭载 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 |
|
|
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 标志指定重试。 |
后续步骤
- 请参阅在 Cloud Run 中部署函数的入门指南。