了解 Workflows

Workflows 是一个全代管式编排平台,该平台会按照您定义的顺序执行服务(工作流)。这些工作流可以组合各种服务,包括 Cloud Run 或 Cloud Functions 上托管的自定义服务、Google Cloud 服务(如 Cloud Vision AI 和 BigQuery)以及任何基于 HTTP 的 API。

通过将 Workflows 整合到解决方案中,您可以端到端地将服务依赖项设为显式且可观察。指定应用、运维或业务流程的工作流为流程提供了可靠来源或规范叙事。

Workflows 采用无服务器模式,可按需纵向扩容,空闲期间不会产生任何费用。由于工作流不包含代码或库依赖项,因此不需要安全补丁程序。部署工作流后,您可以可靠地执行工作流,而无需维护。工作流可以保留状态、重试、轮询或等待长达一年的时间。

工作流符合这些认证和标准

下图展示了使用 Workflows 编排服务的示例:

使用 Workflows 编排服务

关键使用场景

Workflows 支持许多使用场景。以下是一些示例:

服务编排 通过组合服务来创建解决方案 - 跨多个系统执行一系列操作,并等待所有操作完成。可以由事件驱动。例如:
  • 将新上传的文件发送到 Cloud Vision AI,然后将标记写入 Firestore
  • 调用 Cloud Functions 函数并将结果发送到 Cloud Run 服务
批量作业 对多项执行操作 - 对一组项或批量数据执行操作。通常会安排。例如:
  • 每天发送客户电子邮件
  • 准备并运行 BigQuery 或机器学习作业
  • 生成报告
业务流程 自动执行业务线工作流 - 对业务流程中的步骤(包括条件、操作和人机协同事件)进行编码。例如:
  • 从请求到履单跟踪订单
  • 自动执行资源请求(含批准)
IT 流程自动化 代管式执行服务操作 - 轻松编写 Google Cloud 服务操作序列的脚本。例如:
  • 预配新的租户项目或基础架构
  • 按计划或通过事件触发器关停资源

核心概念

工作流由使用 Workflows 语法描述的一系列步骤组成,可以使用 YAML 或 JSON 编写。这是工作流的定义。如需详细了解 Workflows 语法,请参阅语法参考文档

工作流创建完毕后即会进行部署,这样工作流便可以执行。了解如何在 Google Cloud Console 中或使用 Google Cloud CLI 创建和更新工作流

执行是指单次运行工作流定义中包含的逻辑。尚未执行的工作流不会产生费用。所有工作流都将独立执行,并且产品的快速扩缩允许执行大量并发执行。 如需执行工作流,您可以使用客户端库、在 Cloud Console 中使用 Google Cloud CLI 或通过向 Workflows REST API 发送请求。如需了解详情,请参阅执行工作流

主要功能

执行控制

步骤
如需创建工作流,您可以使用 Workflows 语法定义所需的步骤和执行顺序。每个工作流都必须至少有一个步骤。默认情况下,Workflows 会将步骤视为有序列表并逐个执行,直到所有步骤都运行完毕。有关详情,请参阅步骤
条件
您可以使用 switch 块作为选择机制,以允许表达式的值控制工作流的执行流。如需了解详情,请参阅条件
迭代
您可以使用 for 循环遍历一系列数字或一组数据(如列表或映射)。如需了解详情,请参阅迭代
子工作流
子工作流的工作方式与编程语言的例程或函数类似,您可以封装工作流将会多次重复执行的一个步骤或一组步骤。 如需了解详情,请参阅子工作流

触发执行

手动
您可以通过 Google Cloud Console 或 Google Cloud CLI 从命令行管理工作流。您还可以在 Google Cloud Console 中修改工作流时提供可视化支持。
程序化
Workflows API 的 Cloud 客户端库或 REST API 可用于管理工作流。如需了解详情,请参阅 Workflows API 和参考文档
定期
您可以使用 Cloud Scheduler 按特定时间表运行工作流,例如每个星期一上午 9 点或每 15 分钟运行一次工作流。如需了解详情,请参阅使用 Cloud Scheduler 安排工作流
运行时参数
可通过在主工作流中添加 params 字段(放置在 main 块中)访问在运行时传递的数据。main 块接受任何有效的 JSON 数据类型的单个参数。params 字段指定工作流用于存储您传入数据的变量。如需了解详情,请参阅运行时参数

连接服务

HTTP API
您可以定义执行 HTTP 调用的工作流步骤,并将调用的响应分配给变量。例如,您可以通过 HTTP 请求调用 Google Cloud 服务(例如 Cloud Functions 或 Cloud Run)。HTTP 和 HTTPS 请求均受支持。如需了解详情,请参阅发出 HTTP 请求
连接器
Workflows 发布连接器,这些连接器可用于连接到工作流内的其他 Google Cloud API,以及将工作流与这些 Google Cloud 产品集成。它们会为您处理请求的格式,从而为您处理请求的格式设置并提供方法和参数,这样您就无需了解 Google Cloud API 的详细信息。如需了解详情,请参阅了解连接器
标准库和环境变量
借助 Workflows 标准库和内置环境变量,您可以轻松地为服务构建参数和处理响应。
标准库包括模块和常用函数,例如数据类型和格式转换。无需在工作流中导入或加载库 - 库函数可以直接使用。如需了解详情,请参阅标准库概览
您可以使用内置的环境变量访问工作流的环境信息(例如其位置或项目标识符)。内置环境变量不需要声明,并且每次执行工作流时都可以使用。如需了解详情,请参阅内置环境变量

错误处理

您可以透过使用 Workflows 的异常处理(包括采用指数退避算法进行的自动 HTTP 调用重试、自定义错误处理程序及其他高级功能),使工作流具有弹性并自定义其发生故障时的行为。如需了解详情,请参阅工作流错误

等待中

回调允许工作流执行操作等待其他服务向回调端点发出请求;该请求将继续执行工作流。借助回调,您可以告知工作流指定事件已发生,然后等待该事件而不进行轮询。如需了解详情,请参阅等待使用回调

您可以通过向工作流的定义添加休眠步骤来暂停工作流的执行。然后,您可以使用 sys.sleep 来轮询给定时间间隔内的数据。如需了解详情,请参阅等待使用轮询

身份验证和访问控制

由于每个工作流执行都需要进行经过身份验证的调用,因此您可以使用 Workflows 来降低意外或恶意调用的风险。您还可以通过使用基于 IAM 的服务帐号来简化与其他 Google Cloud API 的交互,并且您可以安全地存储密钥和密码以使用Secret Manager 向外部 API 进行身份验证。如需了解详情,请参阅身份验证访问权限控制

可观测性

Workflows 会自动为 Cloud Logging 中的工作流执行生成执行日志。通过调用日志记录和自定义日志,您还可以控制在工作流执行期间将日志发送到 Logging 的时间。如需了解详情,请参阅将日志发送到 Cloud Logging

审核日志记录信息可通过 Cloud Audit Logs 获取。如需了解详情,请参阅 Workflows 审核日志记录信息

代码示例

您可以在示例页面中找到许多有用的 Workflows 代码示例。

后续步骤