本文為您介紹如何定義工作流。
一個工作流編排實例的邏輯定義至少包含一個觸發器(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 、PUT 、POST 、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"]
}
},