本文為您介紹如何定義工作流。

一個工作流編排實例的邏輯定義至少包含一個觸發器(Trigger)和需要執行的任務(Action)。目前定義只支持 JSON 語法。最外層的結構定義如下:

{
  "schemaVersion": "${flow-schema-version}",
  "triggers": { "${flow-trigger-definitions}" },
  "actions": { "${flow-action-definitions}" }
}
字段 必選 說明
schemaVersion 描述當前定義所使用的 Schema 的版本
triggers 用于實例化工作流的一個或多個觸發器的定義
actions 要在工作流運行時執行的一個或多個任務的定義

版本 schemaVersion

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

觸發器 Triggers

所有邏輯應用均以觸發器開始。它定義了可以實例化并啟動邏輯應用工作流的調用。

"${trigger-name}": {
   "type": "${trigger-type}",
   "inputs": { "${trigger-inputs}" },
},
字段 Type 描述
${trigger-name} String 觸發器的名稱
type String 觸發器類型,例如 request 表示一個 HTTP 請求類的觸發器
inputs JSON 對象 定義觸發器行為的輸入

HTTP 請求觸發器示例:

"request": {
   "type": "Request",
   "kind": "Http",
   "inputs": {
      "method": "${method-type}",
      "schema": {
         "type": "object",
         "properties": {
            "${property-name}": {
               "type": "${property-type}"
            }
         },
         "required": [ "${required-properties}" ]
      }
   }
}

inputs 里定義了該觸發器接受的傳入參數。

字段 Type 描述
${method-type} String 請求的方法:GET、PUTPOST、PATCH、DELETE
schema Object 定義入參的 Schema,須為標準的 JSON Schema 格式,用于入參校驗

任務 Actions

任務的概念是使用一些參數執行一個特定的連接器。

每個任務類型標準的結構如下。某些連接器提供了更多的配置項,詳情請參見對應連接器的配置項。

"${action-name}": {
   "type": "HTTP",
   "inputs": {
      "uri": "https://example.com/api",
      "method": "GET",
      "headers": {
        "User-Agent": "Logic Composer"
      }
    },
    "runAfter": {}
}

字段 必選 Type 描述
type String 該任務對應的連接器的名稱
inputs Int、Float、Boolean、JSON Object 定義該連接器接受的入參,需要參考對應連接器的配置項
runAfter Object 在當前任務可以運行之前,必須運行過的觸發器或任務的名稱和結果狀態

例如,在某個任務成功之后發送響應 Response:

"返回請求結果": {
   "type": "Response",
   "inputs": {
     "body": "@body('請求接口')"
   },
   "runAfter": {
     "請求接口": ["Succeeded"]
   }
},