Eventarc 触发器

Eventarc 触发器支持由 Eventarc 支持的任何事件类型触发的函数。为函数指定 Eventarc 触发器时,您需要提供事件过滤条件。每当有事件与过滤条件匹配时,系统都会调用您的函数。

Cloud Run 函数中的事件驱动型函数使用 Eventarc 触发器。如需了解详情,请参阅 Eventarc 文档中的 Eventarc 触发器。如需查看支持的事件类型的列表,请参阅 Eventarc 支持的事件类型

若要使函数使用 Cloud Storage 触发器,必须将其作为 CloudEvent 函数实现。事件数据以 CloudEvents 格式传递给函数,并且 CloudEvent 数据载荷与事件类型相对应。Google 事件代码库包含用于处理事件数据的其他资源。

触发器位置

Eventarc 触发器与特定位置相关联。一般来说,Eventarc 触发器所在的位置应与您要监控事件的 Google Cloud 资源所在的位置一致。在大多数情况下,您还应在同一区域部署 Cloud Run 函数。如需详细了解 Eventarc 触发器位置,请参阅了解 Eventarc 位置

触发器身份

Eventarc 触发器与调用函数时用作身份的服务账号相关联。Eventarc 触发器的服务账号必须具有调用函数的权限。您可能需要验证默认的计算服务账号是否具有调用函数的正确权限。

部署

您可以在部署函数时指定 Eventarc 触发器。 如需查看有关如何部署函数的一般说明,请参阅部署 Cloud Run functions 函数。本部分介绍了如何配置 Eventarc 触发器,以便在部署期间发生与过滤条件匹配的事件时调用函数。

gcloud

如果您要使用 gcloud CLI 进行部署,则可以使用下面所示的标志配置 Eventarc 触发器:

gcloud functions deploy YOUR_FUNCTION_NAME \
  --gen2 \
  --trigger-event-filters="type=EVENTARC_FILTER_TYPE" \
  [--trigger-event-filters=EVENTARC_EVENT_FILTER] \
  [--trigger-event-filters-path-pattern=EVENTARC_EVENT_PATH_PATTERN] \
  [--trigger-location=EVENTARC_TRIGGER_LOCATION] \
  [--trigger-service-account=EVENTARC_TRIGGER_SERVICE_ACCOUNT] \
  [--retry] \
...
  • --gen2 标志用于指定您要部署到 Cloud Run 函数。您必须使用 Cloud Run 函数才能使用 Eventarc 触发器。
  • --trigger-event-filters 标志用于指定触发器要监控的事件过滤条件。与所有过滤条件匹配的事件会触发对函数的调用。

    • 必需:每个触发器都必须具有格式为 --event-filters="type=EVENTARC_FILTER_TYPE"受支持的事件类型。此事件类型创建后便无法更改。如需更改 EVENT_FILTER_TYPE,请创建新触发器并删除旧触发器。
    • 可选:您可以使用格式为 ATTRIBUTE=VALUE 的受支持的过滤条件重复 --trigger-event-filters 标志来添加更多过滤条件。
  • --trigger-event-filters-path-pattern 标志用于指定触发器要以路径模式格式监控的事件过滤条件。过滤条件必须采用 ATTRIBUTE=VALUE 格式。如需了解详情,请参阅了解路径模式

  • --trigger-location 标志用于指定 Eventarc 触发器的位置。如需了解详情,请参阅触发器位置。如果未指定,系统会将您的函数所在的区域用作触发器位置。

  • --trigger-service-account 标志指定要用作 Eventarc 触发器身份的服务账号。如需了解详情,请参阅触发器身份

  • --retry 标志用于控制是否自动重试失败的函数调用。如需了解详情,请参阅重试事件驱动型函数

如果要为直接 Pub/Sub 或 Cloud Storage 事件创建触发器,请参阅 gcloud CLI 说明来分别配置 Pub/SubCloud Storage 触发器。

Eventarc 文档包含为不同类型的事件指定事件过滤条件的示例。如需了解详情,请按照说明为特定提供商、事件类型和目标创建触发器

控制台

如果您使用 Google Cloud 控制台进行部署,则必须选择第 2 代作为您的环境。然后,您可以在触发器部分配置 Eventarc 触发器。

  1. 如需添加事件触发器,请点击添加触发器。系统会显示以下选项:

    • Pub/Sub 触发器
    • Cloud Storage 触发器
    • Firestore 触发器
    • 其他触发器

    选择其中一个选项后,系统会打开 Eventarc 触发器窗格,您可以在其中指定触发器的详细信息。

    如果您要为直接 Pub/Sub 或 Cloud Storage 事件创建触发器,请参阅 Google Cloud 控制台说明来分别配置 Pub/SubCloud Storage 触发器。

  2. 如果您选择其他触发器,请使用 Eventarc 触发器窗格中的触发器类型字段指定 Google 来源自定义第三方之一。

    • Google 来源可让您为 Pub/Sub、Cloud Storage、Firestore 和其他 Google 事件提供方指定触发器。在 Eventarc 触发器窗格中,使用事件提供方字段来选择提供要触发函数的事件类型的产品。然后,在事件字段中,选择要用作触发器的事件。

    • 自定义选项可让您通过应用代码生成和使用事件。按照 Eventarc 触发器窗格中的提示创建渠道。渠道是一种资源,用作将自定义事件从使用方传送到提供方的流水线。自定义事件会发布到渠道,并且 Eventarc 触发器会订阅这些事件。

    • 第三方选项可让您与提供 Eventarc 来源的非 Google 提供方集成。如需了解详情,请参阅 Eventarc 中的第三方事件

  3. 区域字段中,选择 Eventarc 触发器的位置(如果适用)。如需了解详情,请参阅触发器位置

  4. (可选)在服务账号字段中,选择要用作 Eventarc 触发器的身份的服务账号。如需了解详情,请参阅触发器身份

  5. 选中或取消选中失败时重试复选框,以控制是否自动重试失败的函数调用。如需了解详情,请参阅重试事件驱动型函数

  6. 点击保存触发器

后续步骤