全部产品
云市场

基本介绍

更新时间:2019-08-29 11:11:34

本文为您介绍如何定义工作流。

结构

一个工作流编排实例的逻辑定义至少包含一个触发器(Trigger)和需要执行的任务(Action)。目前定义只支持 JSON 语法。最外层的结构定义如下:

  1. {
  2. "schemaVersion": "${flow-schema-version}",
  3. "triggers": { "${flow-trigger-definitions}" },
  4. "actions": { "${flow-action-definitions}" }
  5. }
字段 必选 说明
schemaVersion 描述当前定义所使用的 Schema 的版本
triggers 用于实例化工作流的一个或多个触发器的定义
actions 要在工作流运行时执行的一个或多个任务的定义

版本 schemaVersion

描述当前定义所使用的 Schema 的版本,目前只支持 2018-12-12 版。

触发器 Triggers

所有逻辑应用均以触发器开始。它定义了可以实例化并启动逻辑应用工作流的调用。

  1. "${trigger-name}": {
  2. "type": "${trigger-type}",
  3. "inputs": { "${trigger-inputs}" },
  4. },
字段 Type 描述
${trigger-name} String 触发器的名称
type String 触发器类型,例如 request 表示一个 HTTP 请求类的触发器
inputs JSON 对象 定义触发器行为的输入

HTTP 请求触发器示例:

  1. "request": {
  2. "type": "Request",
  3. "kind": "Http",
  4. "inputs": {
  5. "method": "${method-type}",
  6. "schema": {
  7. "type": "object",
  8. "properties": {
  9. "${property-name}": {
  10. "type": "${property-type}"
  11. }
  12. },
  13. "required": [ "${required-properties}" ]
  14. }
  15. }
  16. }

inputs 里定义了该触发器接受的传入参数。

字段 Type 描述
${method-type} String 请求的方法:GETPUTPOSTPATCHDELETE
schema Object 定义入参的 Schema,须为标准的 JSON Schema 格式,用于入参校验

任务 Actions

任务的概念是使用一些参数执行一个特定的连接器。

每个任务类型标准的结构如下。某些连接器提供了更多的配置项,详情请参见对应连接器的配置项。

  1. "${action-name}": {
  2. "type": "HTTP",
  3. "inputs": {
  4. "uri": "https://example.com/api",
  5. "method": "GET",
  6. "headers": {
  7. "User-Agent": "Logic Composer"
  8. }
  9. },
  10. "runAfter": {}
  11. }
字段 必选 Type 描述
type String 该任务对应的连接器的名称
inputs Int、Float、Boolean、JSON Object 定义该连接器接受的入参,需要参考对应连接器的配置项
runAfter Object 在当前任务可以运行之前,必须运行过的触发器或任务的名称和结果状态

例如,在某个任务成功之后发送响应 Response:

  1. "返回请求结果": {
  2. "type": "Response",
  3. "inputs": {
  4. "body": "@body('请求接口')"
  5. },
  6. "runAfter": {
  7. "请求接口": ["Succeeded"]
  8. }
  9. },