使用 Cloud Run 创建并部署函数后,您可以通过指定触发器,将函数设置为在响应各种场景时执行。
本页面简要介绍 Cloud Run 函数支持的触发器。
触发器类型
默认情况下,在 Cloud Run 上部署的所有函数都是具有 HTTP 端点 (run.app
网址) 的 Cloud Run 源代码部署的服务。
函数的调用或触发方式取决于您在编写代码时指定的函数类型。
- CloudEvent 触发器:响应 Google Cloud 项目中的事件,对应于 CloudEvents 函数(也称为事件驱动型函数)。您必须使用 Eventarc(Google 对 CloudEvents 规范的实现,支持构建事件驱动型架构)来触发函数以响应指定事件。
- HTTP 触发器:响应 HTTP(S) 请求,对应于 HTTP 函数。您可以将其他Google Cloud 服务(非 Eventarc)用作事件提供程序,通过 HTTP(S) 请求调用函数。
如需触发函数以响应 Google Cloud 项目中的事件,您可以在 Google Cloud 控制台中部署函数时指定触发器,也可以在使用 gcloud CLI 部署函数后指定触发器。
您不能将一个函数同时绑定到多个触发器,但可以部署具有相同触发器设置的多个函数,让同一事件触发多个函数执行。
触发器示例
以下是 Cloud Run functions 函数支持的触发器示例:
CloudEvent 触发器:
- 由 Eventarc 触发的 Pub/Sub 事件
- 由 Eventarc 触发的 Cloud Storage 事件
- 由 Eventarc 触发的 Firestore 事件
- 常规 Eventarc 触发器
- 支持 Eventarc 支持的任何事件类型,包括使用 Cloud Audit Logs 的 90 多个事件来源
HTTP 触发器:
- 使用 HTTP 请求进行调用
- 使用 Workflows 在工作流中调用服务
- 使用 Cloud Scheduler 按计划调用服务
- 使用 Cloud Tasks 执行异步任务
- 通过 Pub/Sub 推送订阅触发服务
- 请注意,Pub/Sub 消息可以通过 HTTP 请求直接路由到函数,也可以封装在 Eventarc 中作为 CloudEvent 触发器。
所有 CloudEvents 函数都使用 Eventarc 进行事件传送。Pub/Sub 触发器和 Cloud Storage 触发器是以特定类型的 Eventarc 触发器的形式实现的。
使用 Pub/Sub 和网络钩子的其他触发器
由于 Cloud Run 函数可以由 Pub/Sub 主题中的消息触发,因此您可以将 Cloud Run 函数与其他任何支持 Pub/Sub 作为事件总线的 Google 服务相集成。此外,通过使用 HTTP 触发器,您还可以与任何提供 HTTP 回调(网络钩子)的服务进行集成。以下部分介绍了一些集成示例。
Cloud Logging
Cloud Logging 可以将日志路由到 Pub/Sub 主题,然后 Cloud Functions 函数可以在该主题中使用这些日志。如需了解详情,请参阅 Cloud Logging 文档中的配置和管理接收器。
Cloud Scheduler
您可以通过创建使用 HTTP 触发操作的 Cloud Scheduler 作业来安排运行 HTTP 函数。
当函数应直接触发以响应 Google Cloud 项目中的事件时(例如消息发布到 Pub/Sub 主题时),您还可以安排 CloudEvent 函数。
Cloud Tasks
Cloud Tasks HTTP Target 任务使您可以在任何 HTTP 端点运行任务处理程序,因此具有 HTTP 触发器的 HTTP 函数可用作任务处理程序。您还可以使用任务来降低或限制函数调用速率。如需了解详情,请参阅 Cloud Tasks 文档中的创建 HTTP Target 任务。
Gmail
使用 Gmail Push Notification API,您可以将 Gmail 事件发送到 Pub/Sub 主题,然后通过 Cloud Run 来使用这些事件。