使用事件或 Pub/Sub 消息触发工作流

您可以使用 Eventarc 触发器来执行一个事件或一组事件的结果。系统将事件从事件提供程序路由到感兴趣的事件接收器。

Eventarc 通过 HTTP 请求以 CloudEvents 格式将事件传递给事件接收器。 Workflows 服务将事件转换为 JSON 对象(遵循 CloudEvents 规范),并将事件作为工作流运行时参数传递到工作流执行中。

触发工作流执行的过程:

  • 创建审核日志时,该日志与触发器的过滤条件相匹配。如需查看示例,请参阅本快速入门,了解如何使用 Cloud Audit Logs 来自 BigQuery 的事件触发 Workflows。
  • 响应直接事件,例如 Cloud Storage 存储桶更新或 Firebase Remote Config 模板更新。如需查看示例,请参阅本快速入门,了解如何使用来自 Cloud Storage 的直接事件触发 Workflows。
  • 通过发布到 Pub/Sub 主题的消息。例如,请参阅本快速入门,了解如何使用 Pub/Sub 消息触发 Workflows。

请注意以下几点:

  • 工作流执行开始后,事件即视为已传送,实际执行会在 Workflows 服务中异步发生。

  • 工作流执行开始后,事件触发的执行不会重试,但稍后会失败。如需了解详情,请参阅事件重试政策

  • 旨在确保事件正好处理一次的 Workflows 重复信息删除期限为 24 小时。

  • 将 Workflows 用作 Eventarc 触发器的目标位置时,大于 Workflows 参数大小上限的事件将无法触发工作流执行。如需了解详情,请参阅配额和限制

  • 在受服务边界保护的项目中,将事件路由到 Pub/Sub 推送端点设置为“执行工作流”的工作流目标位置时,您只能通过 Eventarc 创建新的 Pub/Sub 推送订阅。请注意,用于对 Workflows 端点进行推送身份验证的服务帐号必须包含在服务边界内。如需了解详情,请参阅使用 VPC Service Controls 设置服务边界

使用 Google Cloud CLI 创建触发器

您可以通过运行包含必需和可选标志的 gcloud eventarc triggers create 命令来创建触发器。

如需了解详情,请参阅为特定提供程序、事件类型和 Workflows 目标位置创建触发器时“创建触发器”部分中的 gcloud 说明。

使用控制台创建触发器

以下步骤说明了如何在 Google Cloud 控制台的工作流页面上创建触发器。

准备工作

  1. 启用 Eventarc and Pub/Sub API。

    启用 API

  2. 创建服务帐号,以便 Eventarc 可以向 Workflows API 发出请求:

    1. 在 Google Cloud 控制台中,转到服务账号页面。

      转到“服务账号”

    2. 选择项目,然后点击创建服务账号

    3. 服务帐号名称字段中,输入一个长度介于 6 到 30 个字符之间的名称。

      可以包含小写字母数字字符和短划线。在服务账号创建完毕后,无法再更改其名称。

    4. 点击创建并继续

    5. 向您的新服务帐号授予 workflows.invoker 角色,以便该帐号具有触发工作流的权限。在选择角色列表中,依次选择 Workflows > Workflows Invoker

      如果您开发的是正式版应用,请始终授予尽可能宽松的角色。如需了解详情,请参阅管理对项目、文件夹和组织的访问权限

    6. 点击完成

  3. 如需允许将运行 Eventarc 命令的主账号能够充当 Identity and Access Management (IAM) 服务账号,请授予一个使主账号能够模拟服务账号的角色

配置触发器

  1. 如果您还没有要触发的工作流,请创建并部署一个工作流

  2. 在 Google Cloud 控制台中,转到 Workflows 页面:

    进入 Workflows

  3. 在 Workflows 页面上,选择一个工作流以转到其详情页面。

  4. 工作流详细信息页面上,选择 修改

  5. 修改工作流页面上,依次选择添加新触发器 > Eventarc

    系统随即会打开 Eventarc 触发器窗格。

  6. 按照说明为特定提供商、事件类型和Workflows 目标创建触发器,并参阅“创建触发器”部分中的控制台说明。

  7. 选择调用您的工作流的服务帐号

    这指定了您之前向其授予 workflows.invoker 角色的 IAM 服务帐号,以便该帐号有权触发您的工作流。

  8. 点击保存触发器

    Eventarc 触发器列在工作流详情页面的触发器标签页中。

  9. 如需更新或删除触发器,您必须修改工作流:

    1. 工作流详细信息页面上,选择 修改
    2. 触发器部分中,找到要更新或删除的触发器。
    3. 点击 修改资源 删除资源

现在,工作流执行由与触发器的过滤条件匹配的事件触发。

使用 Terraform 创建触发器

您可以使用 Terraform 为工作流创建触发器。如需了解详情,请参阅使用 Eventarc 和 Terraform 触发工作流

后续步骤