函数触发器

使用 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 函数支持的触发器示例:

所有 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 来使用这些事件。