您可以使用 Eventarc 触发器将工作流作为 一个事件或一组事件的结果。事件是从事件中路由的 传递给感兴趣的事件接收器。
Eventarc 通过 HTTP 请求以 CloudEvents 格式将事件传递给事件接收器。 Workflows 服务将 事件转换为 JSON 对象(遵循 CloudEvents 规范) 并将事件作为 工作流运行时参数。
会触发工作流执行过程:
- 当创建审核日志时,该日志与触发器的过滤条件相匹配。 例如,请参阅本快速入门,其中介绍了如何触发 Workflows 使用 Cloud Audit Logs 从 BigQuery 处理事件。
- 响应直接事件,例如 Cloud Storage 更新 存储桶或对 Firebase Remote Config 模板的更新。有关示例,请参见 在本快速入门中,您将通过Workflows Cloud Storage 中的事件。
- 通过发布到 Pub/Sub 主题的消息。有关示例,请参见 您可以使用 Pub/Sub 消息。
请注意以下几点:
工作流执行开始后,事件即视为已传送,并且 实际执行是在 Workflows 中异步进行的, 服务。
如果工作流执行作业中,则系统不会重试由事件触发的执行作业, 但之后会失败有关详情,请参阅 事件重试政策。
Workflows 的重复信息删除窗口,用于确保正好一次 事件处理时间为 24 小时。
将 Workflows 用作 Eventarc 触发器,事件数超过上限 Workflows 参数大小将无法触发工作流执行作业。 如需了解详情,请参阅配额和限制。
在受服务边界保护的项目中,将事件路由到 Pub/Sub 中 推送端点设置为 Workflows 执行作业,那么您只能 创建新的 Pub/Sub 推送订阅 Eventarc。请注意,用于推送的服务账号 必须为 Workflows 端点添加身份验证 访问服务边界如需了解详情,请参阅 使用 VPC Service Controls 设置服务边界。
使用 Google Cloud CLI 创建触发器
您可以通过运行包含必需和可选标志的 gcloud eventarc triggers create
命令来创建触发器。
有关详情,请参阅gcloud说明 触发器”当 为特定提供商、事件类型和 Workflows 目标平台创建触发器。
使用控制台创建触发器
以下步骤说明了如何在 Google Cloud 控制台中的工作流页面。
准备工作
-
启用 Eventarc and Pub/Sub API。
创建服务账号 以便 Eventarc 可以向 Workflows API 发出请求:
在 Google Cloud 控制台中,转到服务账号页面。
选择项目,然后点击创建服务账号。
在服务账号名称字段中,输入一个介于 6 到 6 之间的名称 30 个字符。
它可以包含小写字母数字字符和 短划线。在服务账号创建完毕后,无法再更改其名称。
点击创建并继续。
向新服务账号授予 workflows.invoker 角色,以便 账号有权限触发您的工作流程。在选择角色 列表中,依次选择 Workflows> Workflows Invoker。
如果您开发的是正式版应用,请始终授予权限最少的角色 如需了解详情,请参阅 管理对项目、文件夹和组织的访问权限。
点击完成。
允许将运行 Eventarc 的主账号 命令作为 Identity and Access Management (IAM) 服务 账号、 授予一个使主账号能够模拟服务账号的角色。
配置触发器
如果您还没有要触发的工作流程 创建并部署一个应用。
在 Google Cloud 控制台中,转到 Workflows 页面:
在“Workflows”页面上,选择一个工作流以转到其详情页面 页面。
在工作流详细信息页面上,选择 edit 修改。
在修改工作流页面上,选择添加新触发器 > Eventarc。
系统随即会打开 Eventarc 触发器窗格。
按照说明为特定提供商、事件类型和Workflows 目标创建触发器,并参阅“创建触发器”部分中的控制台说明。
选择调用您的工作流的服务账号。
它指定了您要访问的 IAM 服务账号 之前授予了
workflows.invoker
角色,因此该账号具有 触发您的工作流的权限。点击保存触发器。
Eventarc 触发器列在触发器页面上 工作流详情页面的标签页。
如需更新或删除触发器,您必须修改工作流:
- 在工作流详细信息页面上,选择 edit 修改。
- 在触发器部分中,找到要更新的触发器或 删除。
- 点击 edit 修改资源或 delete 删除资源。
现在,您的工作流执行作业将由与触发器的 过滤条件。
使用 Terraform 创建触发器
您可以使用 Terraform 为工作流创建触发器。如需了解详情,请参阅使用 Eventarc 和 Terraform 触发工作流。