分享方式:


Azure Logic Apps 中觸發程式和動作類型的架構參考指南

此參考描述用來識別邏輯應用程式基礎工作流程定義中觸發程式和動作的一般類型,該定義是由 工作流程定義語言所描述和驗證。 若要尋找您可以在邏輯應用程式中使用的特定連接器觸發程式和動作,請參閱 連線 器概觀底下的清單。

觸發程式概觀

每個工作流程都包含觸發程式,其會定義具現化和啟動工作流程的呼叫。 以下是一般觸發程式類別:

  • 輪詢觸發程式,它會定期檢查服務的端點

  • 推送觸發程式,它會建立端點的訂用帳戶,並提供回呼 URL,讓端點可以在指定的事件發生或數據可用時通知觸發程式。 觸發程式接著會先等候端點的回應,再引發。

觸發程式具有這些最上層元素,但有些是選擇性的:

"<trigger-name>": {
   "type": "<trigger-type>",
   "inputs": { "<trigger-inputs>" },
   "recurrence": { 
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>
   },
   "conditions": [ "<array-with-conditions>" ],
   "runtimeConfiguration": { "<runtime-config-options>" },
   "splitOn": "<splitOn-expression>",
   "operationOptions": "<operation-option>"
},

必要

類型 描述
<trigger-name> String 觸發程式的名稱
<trigger-type> String 觸發程序類型,例如 “Http” 或 “Api 連線 ion”
<trigger-inputs> JSON 物件 定義觸發程式行為的輸入
<time-unit> String 描述觸發程式引發頻率的時間單位:“Second”、“Minute”、“Hour”、“Day”、“Week”、“Month”
<時間單位數目> 整數 值,指定觸發程式根據頻率引發的頻率,也就是等待觸發程式再次引發的時間單位數目

以下是最小和最大間隔:

- 月:1-16 個月
- 日:1-500 天
- 小時:1-12,000 小時
- 分鐘:1-72,000 分鐘
- 秒:1-9,999,999 秒

例如,如果間隔為 6,且頻率為 “Month”,則週期每 6 個月一次。

選擇性

類型 描述
<array-with-conditions> 陣列 陣列,包含一或多個 條件 ,可判斷是否要執行工作流程。 僅適用於觸發程式。
<runtime-config-options> JSON 物件 您可以藉由設定 runtimeConfiguration 屬性來變更觸發程式運行時間行為。 如需詳細資訊,請參閱 運行時間組態設定
<splitOn-expression> String 針對傳回數位的觸發程式,您可以指定表示式,將 數位專案分割或 解譯 成多個工作流程實例進行處理。
<operation-option> String 您可以藉由設定 operationOptions 屬性來變更預設行為。 如需詳細資訊,請參閱 作業選項

觸發程式類型清單

每個觸發程式類型都有不同的介面和輸入,可定義觸發程序的行為。

內建觸發程式

觸發程序類型 描述
HTTP 檢查或 輪詢 任何端點。 此端點必須符合特定的觸發程式合約,方法是使用 202 異步模式或傳回陣列。
HTTPWebhook 為您的邏輯應用程式建立可呼叫的端點,但會呼叫指定的URL來註冊或取消註冊。
週期 根據定義的排程引發。 您可以設定未來觸發程式的日期和時間。 根據頻率,您也可以指定執行工作流程的時間和天數。
要求 為您的邏輯應用程式建立可呼叫的端點,也稱為「手動」觸發程式。 例如,請參閱 使用 HTTP 端點呼叫、觸發程式或巢狀工作流程。

受控 API 觸發程式

觸發程序類型 描述
ApiConnection 使用 Microsoft 管理的 API 或「連接器」來檢查或輪詢端點。
Api 連線 ionWebhook 藉由呼叫 Microsoft 管理的 API 或「連接器」 來訂閱和取消訂閱,為您的邏輯應用程式工作流程建立可呼叫的端點。

觸發程式 - 詳細參考

API 連線 ion 觸發程式

此觸發程式會使用 Microsoft 管理的 API 或「連接器」來檢查或輪詢端點,讓此觸發程式的參數會根據端點而有所不同。 此觸發程式定義中的許多區段都是選擇性的。 觸發程序的行為取決於是否包含區段。

"<APIConnection_trigger_name>": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "connection": {
            "name": "@parameters('$connections')['<connection-name>']['connectionId']"
         }
      },
      "method": "<method-type>",
      "path": "/<api-operation>",
      "retryPolicy": { "<retry-behavior>" },
      "queries": { "<query-parameters>" }
   },
   "recurrence": { 
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "splitOn": "<splitOn-expression>",
   "operationOptions": "<operation-option>"
}

必要

屬性 類型 描述
None <API 連線 ion_trigger_name> String 觸發程式的名稱
host.connection.name <connection-name> String 工作流程所使用之受控 API 之連線的名稱
method <method-type> String 與受控 API 通訊的 HTTP 方法:GET、PUTPOSTPATCHDELETE
path <api-operation> String 要呼叫的 API 作業
recurrence.frequency <time-unit> String 描述觸發程式引發頻率的時間單位:SecondMinuteHour、DayWeekMonth
recurrence.interval <時間單位數目> 整數 值,指定觸發程式根據頻率引發的頻率,也就是等待觸發程式再次引發的時間單位數目

以下是最小和最大間隔:

- 月:1-16 個月
- 天:1-500 天
- 小時:1-12,000 個小時
- 分鐘:1-72,000 分鐘
- 秒:1-9,999,999 秒

例如,如果間隔為 6,而頻率為 Month,則週期是每 6 個月一次。

選擇性

屬性 類型 描述
retryPolicy <retry-behavior> JSON 物件 自定義間歇性失敗的重試行為,這些失敗具有 408、429 和 5XX 狀態代碼,以及任何連線例外狀況。 如需詳細資訊,請參閱重試原則
查詢 <query-parameters> JSON 物件 要包含在 API 呼叫中的任何查詢參數。 例如, "queries": { "api-version": "2018-01-01" } 物件會將 新增 ?api-version=2018-01-01 至呼叫。
runtimeConfiguration.concurrency.runs <max-runs> 整數 根據預設,工作流程實例會同時執行(同時或平行),達到 預設限制。 若要藉由設定新的 <計數> 值來變更此限制,請參閱 變更觸發程式並行
runtimeConfiguration.maximumWaitingRuns <max-runs-queue> 整數 如果您的工作流程已經執行實例數目上限,則任何新的執行都會放入此佇列中,以 達到預設限制。 若要變更預設限制,請參閱 變更等候執行限制。 若要變更實例數目上限,請指定 runtimeConfiguration.concurrency.runs 屬性的值

注意:如果您設定
splitOn <splitOn-expression> String 對於傳回數位的觸發程式,此表達式會參考要使用的數位,以便您可以為每個數位專案建立和執行工作流程實例,而不是針對每個迴圈使用 “for each” 迴圈。

例如,此表達式代表觸發程式主體內容內傳回之陣列中的專案: @triggerbody()?['value']
operationOptions <operation-option> String 您可以藉由設定 operationOptions 屬性來變更預設行為。 如需詳細資訊,請參閱 作業選項

輸出

元素 類型 描述
headers JSON 物件 來自回應的標頭
body JSON 物件 回應中的本文
狀態代碼 整數 回應的狀態代碼

範例

此觸發程式定義會每天檢查收件匣內是否有公司或學校帳戶的電子郵件:

"When_a_new_email_arrives": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "method": "get",
      "path": "/Mail/OnNewEmail",
      "queries": {
          "fetchOnlyWithAttachment": false,
          "folderPath": "Inbox",
          "importance": "Any",
          "includeAttachments": false
      }
   },
   "recurrence": {
      "frequency": "Day",
      "interval": 1
   }
}

Api 連線 ionWebhook 觸發程式

此觸發程式會使用 Microsoft 管理的 API 將訂用帳戶要求傳送至端點、提供 端點可傳送回應的回呼 URL ,並等候端點回應。 如需詳細資訊,請參閱 端點訂用帳戶

"<ApiConnectionWebhook_trigger_name>": {
   "type": "ApiConnectionWebhook",
   "inputs": {
      "body": {
          "NotificationUrl": "@{listCallbackUrl()}"
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['<connection-name>']['connectionId']"
         }
      },
      "retryPolicy": { "<retry-behavior>" },
      "queries": "<query-parameters>"
   },
   "runTimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-run-queue>
      }
   },
   "splitOn": "<splitOn-expression>",
   "operationOptions": "<operation-option>"
}

必要

類型 描述
<connection-name> String 工作流程所使用之受控 API 之連線的名稱
<body-content> JSON 物件 要作為承載傳送至受控 API 的任何訊息內容

選擇性

類型 描述
<retry-behavior> JSON 物件 自定義間歇性失敗的重試行為,這些失敗具有 408、429 和 5XX 狀態代碼,以及任何連線例外狀況。 如需詳細資訊,請參閱重試原則
<query-parameters> JSON 物件 要包含在 API 呼叫中的任何查詢參數

例如, "queries": { "api-version": "2018-01-01" } 物件會將 新增 ?api-version=2018-01-01 至呼叫。
<max-runs> 整數 根據預設,工作流程實例會同時執行(同時或平行),達到 預設限制。 若要藉由設定新的 <計數> 值來變更此限制,請參閱 變更觸發程式並行
<max-runs-queue> 整數 當您的工作流程已經執行實例數目上限時,您可以根據 runtimeConfiguration.concurrency.runs 屬性變更,任何新的執行都會放入此佇列,以 達到預設限制。 若要變更預設限制,請參閱 變更等候執行限制
<splitOn-expression> String 對於傳回數位的觸發程式,此表達式會參考要使用的數位,以便您可以為每個數位專案建立和執行工作流程實例,而不是針對每個迴圈使用 “for each” 迴圈。

例如,此表達式代表觸發程式主體內容內傳回之陣列中的專案: @triggerbody()?['value']
<operation-option> String 您可以藉由設定 operationOptions 屬性來變更預設行為。 如需詳細資訊,請參閱 作業選項

範例

此觸發程式定義會訂閱 Office 365 Outlook API、提供 API 端點的回呼 URL,並等候端點在新電子郵件送達時回應。

"When_a_new_email_arrives_(webhook)": {
   "type": "ApiConnectionWebhook",
   "inputs": {
      "body": {
         "NotificationUrl": "@{listCallbackUrl()}" 
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "path": "/MailSubscription/$subscriptions",
      "queries": {
          "folderPath": "Inbox",
          "hasAttachment": "Any",
          "importance": "Any"
      }
   },
   "splitOn": "@triggerBody()?['value']"
}

HTTP 觸發程序

此觸發程式會根據指定的週期排程,將要求傳送至指定的 HTTP 或 HTTPS 端點。 然後觸發程式會檢查回應,以判斷工作流程是否執行。 如需詳細資訊,請參閱 從 Azure Logic Apps 透過 HTTP 或 HTTPS 呼叫服務端點。

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "<method-type>",
      "uri": "<HTTP-or-HTTPS-endpoint-URL>",
      "headers": { "<header-content>" },
      "queries": "<query-parameters>",
      "body": "<body-content>",
      "authentication": { "<authentication-type-and-property-values>" },
      "retryPolicy": {
         "type": "<retry-behavior>"
      }
   },
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "operationOptions": "<operation-option>"
}

必要

屬性 類型 描述
method <method-type> String 用來傳送傳出要求的方法:“GET”、“PUT”、“POST”、“PATCH” 或 “DELETE”
uri <HTTP-or-HTTPS-endpoint-URL> String 您想要傳送傳出要求的 HTTP 或 HTTPS 端點 URL。 字串大小上限:2 KB

對於 Azure 服務或資源,此 URI 語法包含資源識別碼和您想要存取之資源的路徑。
frequency <time-unit> String 描述觸發程式引發頻率的時間單位:“Second”、“Minute”、“Hour”、“Day”、“Week”、“Month”
interval <時間單位數目> 整數 值,指定觸發程式根據頻率引發的頻率,也就是等待觸發程式再次引發的時間單位數目

以下是最小和最大間隔:

- 月:1-16 個月
- 日:1-500 天
- 小時:1-12,000 小時
- 分鐘:1-72,000 分鐘
- 秒:1-9,999,999 秒

例如,如果間隔為 6,且頻率為 “Month”,則週期每 6 個月一次。

選擇性

屬性 類型 描述
headers <header-content> JSON 物件 您需要包含在要求中的任何標頭

例如,若要設定語言和類型:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }
queries <query-parameters> JSON 物件 您需要在要求中使用的任何查詢參數

例如, "queries": { "api-version": "2018-01-01" } 物件會將 新增 ?api-version=2018-01-01 至要求。
body <body-content> JSON 物件 以要求作為承載傳送的訊息內容
authentication <authentication-type-and-property-values> JSON 物件 要求用來驗證輸出要求的驗證模型。 如需詳細資訊,請參閱對於輸出驗證新增驗證。 除了排程器之外, authority 支援屬性。 未指定時,預設值為 https://management.azure.com/,但您可以使用不同的值。
retryPolicy > type <retry-behavior> JSON 物件 自定義間歇性失敗的重試行為,這些失敗具有 408、429 和 5XX 狀態代碼,以及任何連線例外狀況。 如需詳細資訊,請參閱重試原則
runs <max-runs> 整數 根據預設,工作流程實例會同時執行(同時或平行),達到 預設限制。 若要藉由設定新的 <計數> 值來變更此限制,請參閱 變更觸發程式並行
maximumWaitingRuns <max-runs-queue> 整數 當您的工作流程已經執行實例數目上限時,您可以根據 runtimeConfiguration.concurrency.runs 屬性變更,任何新的執行都會放入此佇列,以 達到預設限制。 若要變更預設限制,請參閱 變更等候執行限制
operationOptions <operation-option> String 您可以藉由設定 operationOptions 屬性來變更預設行為。 如需詳細資訊,請參閱 作業選項

輸出

元素 類型 描述
headers JSON 物件 來自回應的標頭
body JSON 物件 回應中的本文
status code 整數 回應的狀態代碼

連入要求的需求

若要妥善處理邏輯應用程式,端點必須符合特定的觸發程式模式或合約,並辨識這些回應屬性:

屬性 必要 描述
狀態碼 Yes “200 OK” 狀態代碼會啟動執行。 任何其他狀態代碼都不會啟動執行。
Retry-after 標頭 No 邏輯應用程式再次輪詢端點之前的秒數
位置標頭 No 在下一個輪詢間隔呼叫的URL。 如果未指定,則會使用原始 URL。

不同要求的范例行為

狀態碼 重試之後 行為
200 {無} 執行工作流程,然後在定義的周期之後再次檢查更多數據。
200 10 秒 執行工作流程,然後在 10 秒後再次檢查更多數據。
202 60 秒鐘 請勿觸發工作流程。 下一次嘗試會在一分鐘內進行,但受限於定義的週期。 如果定義的週期小於一分鐘,重試后標頭會優先使用。 否則會使用定義的週期。
400 {無} 不正確的要求,請勿執行工作流程。 retryPolicy如果未定義 ,則會使用默認原則。 達到重試次數之後,觸發程式會在定義的循環之後再次檢查數據。
500 {無} 伺服器錯誤,請勿執行工作流程。 retryPolicy如果未定義 ,則會使用默認原則。 達到重試次數之後,觸發程式會在定義的循環之後再次檢查數據。

HTTPWebhook 觸發程式

此觸發程式可藉由建立可藉由呼叫指定端點 URL 來註冊訂用帳戶的端點來呼叫邏輯應用程式。 當您在工作流程中建立此觸發程式時,傳出要求會發出呼叫以註冊訂用帳戶。 如此一來,觸發程式就可以開始接聽事件。 當作業使此觸發程式無效時,傳出要求會自動呼叫取消訂閱。 如需詳細資訊,請參閱 端點訂用帳戶

您也可以在 HTTPWebhook 觸發程式上指定異步限制。 觸發程序的行為取決於您使用或省略的區段。

"HTTP_Webhook": {
   "type": "HttpWebhook",
   "inputs": {
      "subscribe": {
         "method": "<method-type>",
         "uri": "<endpoint-subscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-type>" },
         "retryPolicy": { "<retry-behavior>" }
      },
      "unsubscribe": {
         "method": "<method-type>",
         "url": "<endpoint-unsubscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-type>" }
      }
   },
   "runTimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "operationOptions": "<operation-option>"
}

某些值,例如<方法類型>,適用於 "subscribe""unsubscribe" 物件。

必要

類型 描述
<method-type> String 要用於訂用帳戶要求的 HTTP 方法:“GET”、“PUT”、“POST”、“PATCH” 或 “DELETE”
<endpoint-subscribe-URL> String 要傳送訂用帳戶要求的端點 URL

選擇性

類型 描述
<method-type> String 用於取消要求的 HTTP 方法:“GET”、“PUT”、“POST”、“PATCH” 或 “DELETE”
<endpoint-unsubscribe-URL> String 要傳送取消要求的端點 URL
<body-content> String 在訂用帳戶或取消要求中傳送的任何訊息內容
<authentication-type> JSON 物件 要求用來驗證輸出要求的驗證模型。 如需詳細資訊,請參閱對於輸出驗證新增驗證
<retry-behavior> JSON 物件 自定義間歇性失敗的重試行為,這些失敗具有 408、429 和 5XX 狀態代碼,以及任何連線例外狀況。 如需詳細資訊,請參閱重試原則
<max-runs> 整數 根據預設,工作流程實例會同時執行(同時或平行執行),達到 預設限制。 若要藉由設定新的 <計數> 值來變更此限制,請參閱 變更觸發程式並行
<max-runs-queue> 整數 當您的工作流程已經執行實例數目上限時,您可以根據 runtimeConfiguration.concurrency.runs 屬性變更,任何新的執行都會放入此佇列,以 達到預設限制。 若要變更預設限制,請參閱 變更等候執行限制
<operation-option> String 您可以藉由設定 operationOptions 屬性來變更預設行為。 如需詳細資訊,請參閱 作業選項

輸出

元素 類型 描述
標題 JSON 物件 來自回應的標頭
本文 JSON 物件 回應中的本文
狀態碼 整數 回應的狀態代碼

範例

此觸發程式會建立指定端點的訂用帳戶、提供唯一的回呼 URL,並等候新發佈的技術文章。

"HTTP_Webhook": {
   "type": "HttpWebhook",
   "inputs": {
      "subscribe": {
         "method": "POST",
         "uri": "https://pubsubhubbub.appspot.com/subscribe",
         "body": {
            "hub.callback": "@{listCallbackUrl()}",
            "hub.mode": "subscribe",
            "hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
         },
      },
      "unsubscribe": {
         "method": "POST",
         "url": "https://pubsubhubbub.appspot.com/subscribe",
         "body": {
            "hub.callback": "@{workflow().endpoint}@{listCallbackUrl()}",
            "hub.mode": "unsubscribe",
            "hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
         }
      }
   }
}

週期性觸發程序

此觸發程式會根據指定的週期排程執行,並提供簡單的方法來建立定期執行的工作流程。

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
      "startTime": "<start-date-time-with-format-YYYY-MM-DDThh:mm:ss>",
      "timeZone": "<time-zone>",
      "schedule": {
         // Applies only when frequency is Day or Week. Separate values with commas.
         "hours": [ <one-or-more-hour-marks> ], 
         // Applies only when frequency is Day or Week. Separate values with commas.
         "minutes": [ <one-or-more-minute-marks> ], 
         // Applies only when frequency is Week. Separate values with commas.
         "weekDays": [ "Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday" ] 
      }
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "operationOptions": "<operation-option>"
}

必要

類型 描述
<time-unit> String 描述觸發程式引發頻率的時間單位:“Second”、“Minute”、“Hour”、“Day”、“Week”、“Month”
<時間單位數目> 整數 值,指定觸發程式根據頻率引發的頻率,也就是等待觸發程式再次引發的時間單位數目

以下是最小和最大間隔:

- 月:1-16 個月
- 日:1-500 天
- 小時:1-12,000 小時
- 分鐘:1-72,000 分鐘
- 秒:1-9,999,999 秒

例如,如果間隔為 6,且頻率為 “Month”,則週期每 6 個月一次。

選擇性

類型 描述
<start-date-time-with-format-YYYY-MM-DDThh:mm:ss> String 此格式的開始日期和時間:

如果您指定時區,YYYY-MM-DDThh:mm:ss

-或-

如果您未指定時區,YYYY-MM-DDThh:mm:ssZ

例如,如果您想要 2017 年 9 月 18 日下午 2:00,請指定 “2017-09-18T14:00:00”,並指定時區,例如 “Pacific Standard Time”,或指定 “2017-09-18T14:00:00Z”。

注意:這個開始時間最多為 49 年且必須依照 UTC 日期時間格式中的 ISO 8601 日期時間規格,但不含 UTC 時差。 如果您未指定時區,則必須在結尾加上字母 「Z」,且沒有任何空格。 這個 "Z" 係指對等的航海時間

就簡單排程來說,開始時間係指第一次發生的時間,而就複雜排程來說,觸發程序會在開始時間一到就立即引發。 如需開始日期和時間的詳細資訊,請參閱 建立及排程定期執行的工作
<時區> String 只有當您有指定開始時間時才適用,因為此觸發程序並不接受 UTC 時差。 指定您要套用的時區。
<一或多個小時標記> 整數或整數陣列 如果您為 frequency指定 「Day」 或 「Week」,您可以指定一或多個整數,從 0 到 23,以逗號分隔,做為您想要執行工作流程的一天小時。

例如,如果您指定 「10」、“12” 和 「14」,則會取得上午 10 點、下午 12 點和下午 2 點做為小時標記。
<一或多個分鐘標記> 整數或整數陣列 如果您為 frequency指定 「Day」 或 「Week」 ,則可以指定一或多個整數,從 0 到 59,以逗號分隔,作為您想要執行工作流程的小時分鐘數。

例如,您可以指定 "30" 作為分鐘標記,然後使用上個範例代表一天中的整點,這樣就會得出上午 10:30、下午 12:30 及下午 2:30。
weekDays 字串或字串陣列 如果您為 frequency指定 “Week” ,您可以在執行工作流程時指定一或多個以逗號分隔的天數:“Monday”、“Wednesday”、“Monday”、“Friday”、“Saturday” 和 “Sunday”
<max-runs> 整數 根據預設,工作流程實例會同時執行(同時或平行執行),達到 預設限制。 若要藉由設定新的 <計數> 值來變更此限制,請參閱 變更觸發程式並行
<max-runs-queue> 整數 當您的工作流程已經執行實例數目上限時,您可以根據 runtimeConfiguration.concurrency.runs 屬性變更,任何新的執行都會放入此佇列,以 達到預設限制。 若要變更預設限制,請參閱 變更等候執行限制
<operation-option> String 您可以藉由設定 operationOptions 屬性來變更預設行為。 如需詳細資訊,請參閱 作業選項

範例 1

此基本週期觸發程式每天執行:

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Day",
      "interval": 1
   }
}

範例 2

您可以指定觸發程式的開始日期和時間。 此週期觸發程式會在指定的日期開始,然後每天引發:

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Day",
      "interval": 1,
      "startTime": "2017-09-18T00:00:00Z"
   }
}

範例 3

此週期觸發程式從 2017 年 9 月 9 日下午 2:00 開始,每週一於上午 10:30、下午 12:30 和太平洋標準時間下午 2:30 引發:

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Week",
      "interval": 1,
      "schedule": {
         "hours": [ 10, 12, 14 ],
         "minutes": [ 30 ],
         "weekDays": [ "Monday" ]
      },
      "startTime": "2017-09-07T14:00:00",
      "timeZone": "Pacific Standard Time"
   }
}

如需此觸發程式的詳細資訊加上範例,請參閱 建立並排程定期執行的工作

要求觸發程序

此觸發程式可藉由建立可接受連入要求的端點,讓您的邏輯應用程式可呼叫。 針對此觸發程式,提供 JSON 架構,描述並驗證觸發程式從傳入要求接收的承載或輸入。 架構也會讓觸發程式屬性更容易從工作流程中的後續動作參考。

若要呼叫此觸發程式,您必須使用 listCallbackUrl 工作流程服務 REST API 中所述的 API。 若要瞭解如何使用此觸發程式作為 HTTP 端點,請參閱 使用 HTTP 端點呼叫、觸發或巢狀工作流程。

"manual": {
   "type": "Request",
   "kind": "Http",
   "inputs": {
      "method": "<method-type>",
      "relativePath": "<relative-path-for-accepted-parameter>",
      "schema": {
         "type": "object",
         "properties": { 
            "<property-name>": {
               "type": "<property-type>"
            }
         },
         "required": [ "<required-properties>" ]
      }
   },
   "runTimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-run-queue>
      },
   },
   "operationOptions": "<operation-option>"
}

必要

類型 描述
<property-name> String JSON 架構中屬性的名稱,描述承載
<property-type> String 屬性的類型

選擇性

類型 描述
<method-type> String 傳入要求必須用來呼叫邏輯應用程式的方法:“GET”、“PUT”、“POST”、“PATCH”、“DELETE”
<relative-path-for-accepted-parameter> String 端點 URL 可接受之參數的相對路徑
<required-properties> 陣列 需要值的一或多個屬性
<max-runs> 整數 根據預設,工作流程實例會同時執行(同時或平行執行),達到 預設限制。 若要藉由設定新的 <計數> 值來變更此限制,請參閱 變更觸發程式並行
<max-runs-queue> 整數 當您的工作流程已經執行實例數目上限時,您可以根據 runtimeConfiguration.concurrency.runs 屬性變更,任何新的執行都會放入此佇列,以 達到預設限制。 若要變更預設限制,請參閱 變更等候執行限制
<operation-option> String 您可以藉由設定 operationOptions 屬性來變更預設行為。 如需詳細資訊,請參閱 作業選項

範例

此觸發程式指定連入要求必須使用 HTTP POST 方法來呼叫觸發程式,並包含驗證傳入要求輸入的架構:

"manual": {
   "type": "Request",
   "kind": "Http",
   "inputs": {
      "method": "POST",
      "schema": {
         "type": "object",
         "properties": {
            "customerName": {
               "type": "String"
            },
            "customerAddress": { 
               "type": "Object",
               "properties": {
                  "streetAddress": {
                     "type": "string"
                  },
                  "city": {
                     "type": "string"
                  }
               }
            }
         }
      }
   }
}

觸發條件

對於任何觸發程式,而只有觸發程式,您可以包含數位,其中包含一或多個表達式的條件,以判斷工作流程是否應該執行。 若要將 conditions 屬性新增至工作流程中的觸發程式,請在程式代碼檢視編輯器中開啟邏輯應用程式。

例如,您可以藉由參考 屬性中的 conditions 觸發程式狀態代碼,指定只有在網站傳回內部伺服器錯誤時,觸發程式才會引發:

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Hour",
      "interval": 1
   },
   "conditions": [ {
      "expression": "@equals(triggers().code, 'InternalServerError')"
   } ]
}

根據預設,只有在收到 「200 OK」 回應之後,觸發程式才會引發。 當表達式參考觸發程式的狀態代碼時,會取代觸發程式的預設行為。 因此,如果您希望觸發程式針對多個狀態代碼引發,例如 「200」 和 「201」 狀態代碼,您必須將此表達式納入為條件:

@or(equals(triggers().code, 200),equals(triggers().code, 201))

在陣列上觸發多個執行

如果您的觸發程式收到要處理的工作流程數位,有時候「針對每個」迴圈可能需要太長的時間來處理每個數位專案。 相反地,您可以使用觸發程式中的 SplitOn 屬性來 清除 數位。 取消批處理會分割陣列專案,並啟動針對每個數位專案執行的新工作流程實例。 例如,當您想要輪詢可能會在輪詢間隔之間傳回多個新專案的端點時,此方法很有用。

如果觸發程式的 Swagger 檔案描述陣列的承載, 則 SplitOn 屬性會自動新增至觸發程式。 否則,請在響應承載中新增這個屬性,其中包含您要清除的陣列。

使用SplitOn功能之前,請先檢閱下列考慮:

  • 如果啟用觸發程式並行, SplitOn 限制 會大幅降低。 如果項目數目超過此限制,則會停用SplitOn功能。

  • 您無法將 SplitOn 功能與同步回應模式搭配使用。 任何使用 SplitOn 屬性且包含回應動作的工作流程都會以異步方式執行,並立即傳送202 ACCEPTED回應。

  • 如需SplitOn可以在單一工作流程執行中處理的數位數目上限,請參閱限制和設定

範例

假設您有 HTTP 觸發程式會呼叫 API 並接收此回應:

{
   "Status": "Succeeded",
   "Rows": [ 
      { 
         "id": 938109380,
         "name": "customer-name-one"
      },
      {
         "id": 938109381,
         "name": "customer-name-two"
      }
   ]
}

您的工作流程只需要 中的 Rows陣列內容,因此您可以像下列範例一樣建立觸發程式:

"HTTP_Debatch": {
   "type": "Http",
    "inputs": {
        "uri": "https://mydomain.com/myAPI",
        "method": "GET"
    },
   "recurrence": {
      "frequency": "Second",
      "interval": 1
    },
    "splitOn": "@triggerBody()?.Rows"
}

注意

如果您使用 SplitOn 命令,則無法取得數位外部的屬性。 因此,在此範例中,您無法在從 API 傳回的回應中取得 status 屬性。

為了避免屬性不存在, Rows 本範例會使用 ? 運算符。

您的工作流程定義現在 @triggerBody().name 可以用來取得 name 值,這些值來自 "customer-name-one" 第一次執行,以及 "customer-name-two" 從第二次執行。 因此,您的觸發程式輸出看起來會像下列範例:

{
   "body": {
      "id": 938109380,
      "name": "customer-name-one"
   }
}
{
   "body": {
      "id": 938109381,
      "name": "customer-name-two"
   }
}

動作概觀

Azure Logic Apps 提供各種動作類型 - 每個類型都有不同的輸入,可定義動作的唯一行為。 動作具有這些高階元素,但有些是選擇性的:

"<action-name>": {
   "type": "<action-type>",
   "inputs": { 
      "<input-name>": { "<input-value>" },
      "retryPolicy": "<retry-behavior>" 
   },
   "runAfter": { "<previous-trigger-or-action-status>" },
   "runtimeConfiguration": { "<runtime-config-options>" },
   "operationOptions": "<operation-option>"
},

必要

類型 描述
<action-name> String 動作的名稱
<action-type> String 動作類型,例如 “Http” 或 “Api 連線 ion”
<input-name> String 定義動作行為之輸入的名稱
<input-value> 各種 輸入值,可以是字串、整數、JSON 物件等等
<previous-trigger-or-action-status> JSON 物件 觸發程式或動作的名稱和結果狀態,該觸發程式或動作必須立即執行,才能執行此目前動作

選擇性

類型 描述
<retry-behavior> JSON 物件 自定義間歇性失敗的重試行為,這些失敗具有 408、429 和 5XX 狀態代碼,以及任何連線例外狀況。 如需詳細資訊,請參閱重試原則。
<runtime-config-options> JSON 物件 對於某些動作,您可以藉由設定 runtimeConfiguration 屬性,在運行時間變更動作的行為。 如需詳細資訊,請參閱 運行時間組態設定
<operation-option> String 對於某些動作,您可以藉由設定 operationOptions 屬性來變更默認行為。 如需詳細資訊,請參閱 作業選項

動作類型清單

以下是一些常用的動作類型:

內建動作

動作類型 描述
組成 從輸入建立單一輸出,其中可以有各種類型。
執行 JavaScript 程式代碼 執行符合特定準則的 JavaScript 代碼段。 如需程式代碼需求和詳細資訊,請參閱 使用內嵌程序代碼新增和執行代碼段。
Function 呼叫 Azure 函式。
HTTP 呼叫 HTTP 端點。
聯結 從陣列中的所有專案建立字串,並以指定的分隔符分隔這些專案。
剖析 JSON 從 JSON 內容中的屬性建立方便使用的令牌。 接著,您可以藉由在邏輯應用程式中包含令牌來參考這些屬性。
查詢 根據條件或篩選,從另一個數位列中的專案建立陣列。
回應 建立連入呼叫或要求的回應。
選取 根據指定的對應,從另一個數位轉換專案,以 JSON 物件建立陣列。
Table 從數位建立 CSV 或 HTML 資料表。
終止 停止正在執行的工作流程。
等候 暫停工作流程的指定持續時間,或直到指定的日期和時間為止。
工作流程 將工作流程巢狀於另一個工作流程內。

受控 API 動作

動作類型 描述
ApiConnection 使用 Microsoft 管理的 API 呼叫 HTTP 端點。
Api 連線 ionWebhook 運作方式類似 HTTP Webhook,但使用 Microsoft 管理的 API

控制工作流程動作

這些動作可協助您控制工作流程執行,並包含其他動作。 從控件工作流程動作外部,您可以直接參考該控件工作流程動作內的動作。 例如,如果您在範圍內有 Http 動作,則可以從工作流程中的任何位置參考 @body('Http') 表達式。 不過,存在於控件工作流程動作內的動作只能「執行」位於相同控件工作流程結構中的其他動作。

動作類型 描述
ForEach 針對陣列中的每個專案,在迴圈中執行相同的動作。
If 根據指定的條件為 true 或 false 來執行動作。
範圍 根據一組動作的群組狀態執行動作。
Switch 當表達式、對象或標記的值符合每個案例所指定的值時,執行組織成案例的動作。
Until 在迴圈中執行動作,直到指定的條件為 true 為止。

動作 - 詳細參考

API 連線 ion 動作

此動作會將 HTTP 要求傳送至 Microsoft 管理的 API ,而且需要 API 和參數的相關信息,以及有效連線的參考。

"<action-name>": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "connection": {
            "name": "@parameters('$connections')['<api-name>']['connectionId']"
         },
         "<other-action-specific-input-properties>"        
      },
      "method": "<method-type>",
      "path": "/<api-operation>",
      "retryPolicy": "<retry-behavior>",
      "queries": { "<query-parameters>" },
      "<other-action-specific-properties>"
    },
    "runAfter": {}
}

必要

類型 描述
<action-name> String 連接器所提供的動作名稱
<api-name> String 用於連線的 Microsoft 管理 API 名稱
<method-type> String 呼叫 API 的 HTTP 方法:“GET”、“PUT”、“POST”、“PATCH” 或 “DELETE”
<api-operation> String 要呼叫的 API 作業

選擇性

類型 描述
<other-action-specific-input-properties> JSON 物件 套用至此特定動作的任何其他輸入屬性
<retry-behavior> JSON 物件 自定義間歇性失敗的重試行為,這些失敗具有 408、429 和 5XX 狀態代碼,以及任何連線例外狀況。 如需詳細資訊,請參閱重試原則
<query-parameters> JSON 物件 要包含在 API 呼叫中的任何查詢參數。

例如, "queries": { "api-version": "2018-01-01" } 物件會將 新增 ?api-version=2018-01-01 至呼叫。
<other-action-specific-properties> JSON 物件 套用至此特定動作的任何其他屬性

範例

此定義描述 Office 365 Outlook 連接器的電子郵件 動作,這是 Microsoft 管理的 API:

"Send_an_email": {
   "type": "ApiConnection",
   "inputs": {
      "body": {
         "Body": "Thank you for your membership!",
         "Subject": "Hello and welcome!",
         "To": "Sophie.Owen@contoso.com"
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "method": "POST",
      "path": "/Mail"
    },
    "runAfter": {}
}

API 連線 ionWebhook 動作

此動作會使用 Microsoft 管理的 API,透過 HTTP 將訂用帳戶要求傳送至端點、提供 端點可以傳送回應的回呼 URL ,並等候端點回應。 如需詳細資訊,請參閱 端點訂用帳戶

"<action-name>": {
   "type": "ApiConnectionWebhook",
   "inputs": {
      "subscribe": {
         "method": "<method-type>",
         "uri": "<api-subscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-type>" },
         "retryPolicy": "<retry-behavior>",
         "queries": { "<query-parameters>" },
         "<other-action-specific-input-properties>"
      },
      "unsubscribe": {
         "method": "<method-type>",
         "uri": "<api-unsubscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-type>" },
         "<other-action-specific-properties>"
      },
   },
   "runAfter": {}
}

某些值,例如<方法類型>,適用於 "subscribe""unsubscribe" 物件。

必要

類型 描述
<action-name> String 連接器所提供的動作名稱
<method-type> String 用於訂閱或取消訂閱端點的 HTTP 方法:“GET”、“PUT”、“POST”、“PATCH” 或 “DELETE”
<api-subscribe-URL> String 要用於訂閱 API 的 URI

選擇性

類型 描述
<api-unsubscribe-URL> String 要用於取消訂閱 API 的 URI
<header-content> JSON 物件 要求中要傳送的任何標頭

例如,若要在要求上設定語言和類型:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }
<body-content> JSON 物件 要求中要傳送的任何訊息內容
<authentication-type> JSON 物件 要求用來驗證輸出要求的驗證模型。 如需詳細資訊,請參閱對於輸出驗證新增驗證
<retry-behavior> JSON 物件 自定義間歇性失敗的重試行為,這些失敗具有 408、429 和 5XX 狀態代碼,以及任何連線例外狀況。 如需詳細資訊,請參閱重試原則
<query-parameters> JSON 物件 要包含在 API 呼叫中的任何查詢參數

例如, "queries": { "api-version": "2018-01-01" } 物件會將 新增 ?api-version=2018-01-01 至呼叫。
<other-action-specific-input-properties> JSON 物件 套用至此特定動作的任何其他輸入屬性
<other-action-specific-properties> JSON 物件 套用至此特定動作的任何其他屬性

您也可以使用與 HTTP 異步限制相同的方式,指定 Api 連線 ionWebhook 動作的限制

撰寫動作

此動作會從多個輸入建立單一輸出,包括表達式。 輸出和輸入都可以有 Azure Logic Apps 原生支援的任何類型,例如數位、JSON 物件、XML 和二進位。 接著,您可以在其他動作中使用動作的輸出。

"Compose": {
   "type": "Compose",
   "inputs": "<inputs-to-compose>",
   "runAfter": {}
},

必要

類型 描述
<inputs-to-compose> 任意 用於建立單一輸出的輸入

範例 1

此動作定義會 abcdefg 與尾端空格和 值 1234合併:

"Compose": {
   "type": "Compose",
   "inputs": "abcdefg 1234",
   "runAfter": {}
},

以下是此動作所建立的輸出:

abcdefg 1234

範例 2

此動作定義會合併包含的 abcdefg 字串變數,以及包含的 1234整數變數:

"Compose": {
   "type": "Compose",
   "inputs": "@{variables('myString')}@{variables('myInteger')}",
   "runAfter": {}
},

以下是此動作所建立的輸出:

"abcdefg1234"

執行 JavaScript 程式代碼動作

此動作會執行 JavaScript 代碼段,並透過工作流程中後續動作可以參考的令牌傳回結果。

"Execute_JavaScript_Code": {
   "type": "JavaScriptCode",
   "inputs": {
      "code": "<JavaScript-code-snippet>",
      "explicitDependencies": {
         "actions": [ <preceding-actions> ],
         "includeTrigger": true
      }
   },
   "runAfter": {}
}

必要

類型 描述
<JavaScript-code-snippet> 不定 您想要執行的 JavaScript 程式代碼。 如需程式代碼需求和詳細資訊,請參閱 在工作流程中執行代碼段。

在屬性中 code ,代碼段可以使用唯讀 workflowContext 物件做為輸入。 此物件具有子屬性,可讓您的程式代碼存取來自觸發程式和工作流程中任何先前動作的輸出。 如需對象的詳細資訊 workflowContext ,請參閱 使用 workflowContext 對象參考觸發程式和動作結果。

在某些情況下需要

屬性 explicitDependencies 指定您想要明確包含觸發程序的結果、先前的動作,或兩者作為代碼段的相依性。 如需新增這些相依性的詳細資訊,請參閱 將相依性新增為參數至內嵌程式代碼動作

includeTrigger針對 屬性,您可以指定 truefalse 值。

類型 描述
<preceding-actions> 字串陣列 陣列,以 JSON 格式的動作名稱作為相依性。 請務必使用工作流程定義中顯示的動作名稱,其中動作名稱使用底線 (_), 而不是空格 (“ ” )。

範例 1

此動作會執行程序代碼,以取得邏輯應用程式工作流程的名稱,並傳回結果為 「Hello world from <logic-app-name>」 文字。 在此範例中,程式代碼會透過只讀workflowContext物件存取 workflowContext.workflow.name 屬性,以參考工作流程的名稱。 如需使用 workflowContext 對象的詳細資訊,請參閱 程式碼中的參考觸發程式和動作結果。

"Execute_JavaScript_Code": {
   "type": "JavaScriptCode",
   "inputs": {
      "code": "var text = \"Hello world from \" + workflowContext.workflow.name;\r\n\r\nreturn text;"
   },
   "runAfter": {}
}

範例 2

此動作會在邏輯應用程式工作流程中執行程式碼,此工作流程會在新電子郵件送達 Outlook 帳戶時觸發。 工作流程也會使用 Office 365 Outlook 傳送核准電子郵件動作,以轉送所接收電子郵件 中的內容以及核准要求。

此程式代碼會從電子郵件訊息的 Body 屬性擷取電子郵件位址,並從核准動作傳回位址以及 SelectedOption 屬性值。 動作會明確包含 [傳送核准電子郵件] 動作,做為 物件內explicitDependencies物件內actions物件的相依性。

"Execute_JavaScript_Code": {
   "type": "JavaScriptCode",
   "inputs": {
      "code": "var myResult = /(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\r\n\r\nvar email = workflowContext.trigger.outputs.body.Body;\r\n\r\nvar reply = workflowContext.actions.Send_approval_email.outputs.body.SelectedOption;\r\n\r\nreturn email.match(myResult) + \" - \" + reply;\r\n;",
      "explicitDependencies": {
         "actions": [
            "Send_approval_email"
         ]
      }
   },
   "runAfter": {}
}

函式動作

此動作會呼叫先前建立 的 Azure 函式

"<Azure-function-name>": {
   "type": "Function",
   "inputs": {
     "function": {
        "id": "<Azure-function-ID>"
      },
      "method": "<method-type>",
      "headers": { "<header-content>" },
      "body": { "<body-content>" },
      "queries": { "<query-parameters>" } 
   },
   "runAfter": {}
}

必要

類型 描述
<Azure-function-ID> String 您想要呼叫之 Azure 函式的資源識別碼。 以下是此值的格式:

“/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Web/sites/<Azure-function-app-name>/functions/<Azure-function-name>”
<method-type> String 用於呼叫函式的 HTTP 方法:“GET”、“PUT”、“POST”、“PATCH” 或 “DELETE”

如果未指定,則預設值為 「POST」 方法。

選擇性

類型 描述
<header-content> JSON 物件 要隨呼叫一起傳送的任何標頭

例如,若要在要求上設定語言和類型:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }
<body-content> JSON 物件 要求中要傳送的任何訊息內容
<query-parameters> JSON 物件 要包含在 API 呼叫中的任何查詢參數

例如, "queries": { "api-version": "2018-01-01" } 物件會將 新增 ?api-version=2018-01-01 至呼叫。
<other-action-specific-input-properties> JSON 物件 套用至此特定動作的任何其他輸入屬性
<other-action-specific-properties> JSON 物件 套用至此特定動作的任何其他屬性

當您儲存邏輯應用程式時,Azure Logic Apps 會在參考的函式上執行下列檢查:

  • 您的工作流程必須具有函式的存取權。

  • 您的工作流程只能使用標準 HTTP 觸發程式或一般 JSON Webhook 觸發程式。

    Azure Logic Apps 會取得並快取觸發程式的 URL,其用於運行時間。 不過,如果有任何作業使快取的 URL 失效,函式動作會在運行時間失敗。 若要修正此問題,請再次儲存邏輯應用程式,讓邏輯應用程式再次取得並快取觸發程式 URL。

  • 函式無法定義任何路由。

  • 只允許 「函式」和「匿名」授權層級。

範例

此動作定義會呼叫先前建立的 「GetProductID」 函式:

"GetProductID": {
   "type": "Function",
   "inputs": {
     "function": {
        "id": "/subscriptions/<XXXXXXXXXXXXXXXXXXXX>/resourceGroups/myLogicAppResourceGroup/providers/Microsoft.Web/sites/InventoryChecker/functions/GetProductID"
      },
      "method": "POST",
      "headers": { 
          "x-ms-date": "@utcnow()"
       },
      "body": { 
          "Product_ID": "@variables('ProductID')"
      }
   },
   "runAfter": {}
}

HTTP 動作

此動作會將要求傳送至指定的 HTTP 或 HTTPS 端點,並檢查回應以判斷工作流程是否執行。 如需詳細資訊,請參閱 從 Azure Logic Apps 透過 HTTP 或 HTTPS 呼叫服務端點。

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "<method-type>",
      "uri": "<HTTP-or-HTTPS-endpoint-URL>",
      "headers": { "<header-content>" },
      "queries": { "<query-parameters>" },
      "body": "<body-content>",
      "authentication": { "<authentication-type-and-property-values>" },
      "retryPolicy": {
         "type": "<retry-behavior>"
      },
   },
   "runAfter": {}
}

必要

屬性 類型 描述
method <method-type> String 用來傳送傳出要求的方法:“GET”、“PUT”、“POST”、“PATCH” 或 “DELETE”
uri <HTTP-or-HTTPS-endpoint-URL> String 您想要傳送傳出要求的 HTTP 或 HTTPS 端點 URL。 字串大小上限:2 KB

對於 Azure 服務或資源,此 URI 語法包含資源識別碼和您想要存取之資源的路徑。

選擇性

屬性 類型 描述
headers <header-content> JSON 物件 您需要包含在要求中的任何標頭

例如,若要設定語言和類型:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }
queries <query-parameters> JSON 物件 您需要在要求中使用的任何查詢參數

例如, "queries": { "api-version": "2018-01-01" } 物件會將 新增 ?api-version=2018-01-01 至呼叫。
body <body-content> JSON 物件 以要求作為承載傳送的訊息內容
authentication <authentication-type-and-property-values> JSON 物件 要求用來驗證輸出要求的驗證模型。 如需詳細資訊,請參閱對於輸出驗證新增驗證。 除了排程器之外, authority 支援屬性。 未指定時,預設值為 https://management.azure.com/,但您可以使用不同的值。
retryPolicy > type <retry-behavior> JSON 物件 自定義間歇性失敗的重試行為,這些失敗具有 408、429 和 5XX 狀態代碼,以及任何連線例外狀況。 如需詳細資訊,請參閱重試原則
<other-action-specific-input-properties> <input-property> JSON 物件 套用至此特定動作的任何其他輸入屬性
<other-action-specific-properties> <property-value> JSON 物件 套用至此特定動作的任何其他屬性

範例

此動作定義會藉由將要求傳送至指定的端點來取得最新消息:

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "GET",
      "uri": "https://mynews.example.com/latest"
   }
}

[聯結] 動作

此動作會從數位中的所有專案建立字串,並以指定的分隔符分隔這些專案。

"Join": {
   "type": "Join",
   "inputs": {
      "from": <array>,
      "joinWith": "<delimiter>"
   },
   "runAfter": {}
}

必要

類型 描述
<array> 陣列 提供來源項目的陣列或表達式。 如果您指定表達式,請使用雙引弧括住該表達式。
<delimiter> 單一字元字串 分隔字串中每個專案的字元

範例

假設您先前已建立的 「myIntegerArray」 變數,其中包含此整數數位:

[1,2,3,4]

此動作定義會使用 variables() 表示式中的 函式從變數取得值,並使用逗號分隔的這些值來建立此字串: "1,2,3,4"

"Join": {
   "type": "Join",
   "inputs": {
      "from": "@variables('myIntegerArray')",
      "joinWith": ","
   },
   "runAfter": {}
}

剖析 JSON 動作

此動作會從 JSON 內容中的屬性建立使用者易記欄位或 令牌 。 接著,您可以使用令牌,在邏輯應用程式中存取這些屬性。 例如,當您想要使用來自 Azure 服務匯流排 和 Azure Cosmos DB 等服務的 JSON 輸出時,您可以在邏輯應用程式中包含此動作,以便更輕鬆地參考該輸出中的數據。

"Parse_JSON": {
   "type": "ParseJson",
   "inputs": {
      "content": "<JSON-source>",
         "schema": { "<JSON-schema>" }
      },
      "runAfter": {}
},

必要

類型 描述
<JSON-source> JSON 物件 您想要剖析的 JSON 內容
<JSON-schema> JSON 物件 描述 JSON 內容基礎的 JSON 架構,動作會用來剖析來源 JSON 內容。

提示:在工作流程設計工具中,您可以提供架構或提供範例承載,讓動作可以產生架構。

範例

此動作定義會建立這些令牌,您可以在工作流程中使用,但只能在執行下列剖析 JSON 動作的動作中使用

FirstNameLastNameEmail

"Parse_JSON": {
   "type": "ParseJson",
   "inputs": {
      "content": {
         "Member": {
            "Email": "Sophie.Owen@contoso.com",
            "FirstName": "Sophie",
            "LastName": "Owen"
         }
      },
      "schema": {
         "type": "object",
         "properties": {
            "Member": {
               "type": "object",
               "properties": {
                  "Email": {
                     "type": "string"
                  },
                  "FirstName": {
                     "type": "string"
                  },
                  "LastName": {
                     "type": "string"
                  }
               }
            }
         }
      }
   },
   "runAfter": { }
},

在此範例中,「content」 屬性會指定要剖析之動作的 JSON 內容。 您也可以提供此 JSON 內容作為產生架構的範例承載。

"content": {
   "Member": { 
      "FirstName": "Sophie",
      "LastName": "Owen",
      "Email": "Sophie.Owen@contoso.com"
   }
},

“schema” 屬性會指定用來描述 JSON 內容的 JSON 架構:

"schema": {
   "type": "object",
   "properties": {
      "Member": {
         "type": "object",
         "properties": {
            "FirstName": {
               "type": "string"
            },
            "LastName": {
               "type": "string"
            },
            "Email": {
               "type": "string"
            }
         }
      }
   }
}

查詢動作

此動作會根據指定的條件或篩選,從另一個陣列中的專案建立陣列。

"Filter_array": {
   "type": "Query",
   "inputs": {
      "from": <array>,
      "where": "<condition-or-filter>"
   },
   "runAfter": {}
}

必要

類型 描述
<array> 陣列 提供來源項目的陣列或表達式。 如果您指定表達式,請使用雙引弧括住該表達式。
<condition-or-filter> String 用於篩選來源陣列中項目的條件

注意:如果沒有值滿足條件,則動作會建立空陣列。

範例

此動作定義會建立一個陣列,其值大於指定的值,也就是兩個:

"Filter_array": {
   "type": "Query",
   "inputs": {
      "from": [ 1, 3, 0, 5, 4, 2 ],
      "where": "@greater(item(), 2)"
   }
}

Response action

此動作會建立回應 HTTP 要求的承載。

"Response" {
    "type": "Response",
    "kind": "http",
    "inputs": {
        "statusCode": 200,
        "headers": { <response-headers> },
        "body": { <response-body> }
    },
    "runAfter": {}
},

必要

類型 描述
<response-status-code> 整數 傳送至傳入要求的 HTTP 狀態代碼。 默認程式代碼為 「200 OK」,但程式代碼可以是任何以 2xx、4xx 或 5xx 開頭的有效狀態代碼,但不是 3xxx。

選擇性

類型 描述
<response-headers> JSON 物件 要包含在回應中的一或多個標頭
<response-body> 各種 回應主體,可以是字串、JSON 物件,甚至是先前動作的二進位內容

範例

此動作定義會建立具有指定狀態代碼、訊息本文和訊息標頭之 HTTP 要求的回應:

"Response": {
   "type": "Response",
   "inputs": {
      "statusCode": 200,
      "body": {
         "ProductID": 0,
         "Description": "Organic Apples"
      },
      "headers": {
         "x-ms-date": "@utcnow()",
         "content-type": "application/json"
      }
   },
   "runAfter": {}
}

限制

不同於其他動作, 回應 動作有特殊限制:

  • 您的工作流程只有在工作流程以 HTTP 要求觸發程式啟動時,才能使用 回應 動作,這表示您的工作流程必須由 HTTP 要求觸發。

  • 您的工作流程可以使用 Foreach 迴圈、Until 迴圈,包括循序迴圈和平行分支以外的任何位置的回應動作。

  • 只有在回應動作所需的所有動作在 HTTP 逾時限制內完成時,原始要求才會取得工作流程的回應。

    不過,如果您的工作流程將另一個邏輯應用程式呼叫為巢狀工作流程,則父工作流程會等到巢狀工作流程完成,而不論巢狀工作流程完成之前經過多少時間。

  • 當您的 工作流程使用回應 動作和同步回應模式時,工作流程也無法在 觸發程式定義中使用splitOn 命令,因為該命令會建立多個執行。 使用 PUT 方法時,請檢查此案例,如果為 true,則傳回「不正確的要求」回應。

    否則,如果您的工作流程使用 splitOn 命令和 Response 動作,工作流程會以異步方式執行,並立即傳回 「202 ACCEPTED」 回應。

  • 當您的工作流程執行達到 回應 動作,但傳入要求已收到回應時, 回應 動作會因為衝突而標示為「失敗」。 因此,邏輯應用程式執行也會標示為「失敗」狀態。

選取動作

此動作會根據指定的對應,從另一個陣列轉換專案,以 JSON 物件建立陣列。 輸出數位和來源陣列一律具有相同的項目數目。 雖然您無法變更輸出陣列中的物件數目,但您可以在這些物件中新增或移除屬性及其值。 屬性 select 會指定至少一個索引鍵/值組,以定義對應來轉換來源陣列中的專案。 索引鍵/值組代表輸出數位中所有物件的屬性及其值。

"Select": {
   "type": "Select",
   "inputs": {
      "from": <array>,
      "select": { 
          "<key-name>": "<expression>",
          "<key-name>": "<expression>"        
      }
   },
   "runAfter": {}
},

必要

類型 描述
<array> 陣列 提供來源項目的陣列或表達式。 請確定您以雙引弧括住表達式。

注意:如果來源陣列是空的,動作會建立空陣列。
<key-name> String 從表達式指派給結果 <的屬性名稱>

若要在輸出數位中的所有物件上新增屬性,請提供<該屬性的索引鍵名稱>,以及<屬性值的表達式>

若要從數位中的所有物件中移除屬性,請省略 <該屬性的索引鍵名稱> 。
<expression> String 轉換來源陣列中項目的表達式,並將結果指派給 <索引鍵名稱>

Select 宏指令會建立數位做為輸出,因此任何想要使用此輸出的動作都必須接受數位,或者您必須將陣列轉換成取用者動作接受的類型。 例如,若要將輸出數位轉換成字串,您可以將該數位傳遞至 Compose 宏指令,然後在其他動作中參考 Compose 宏指令的輸出

範例

此動作定義會從整數陣列建立 JSON 物件陣列。 動作會逐一查看來源陣列、使用 @item() 運算式取得每個整數值,並將每個值指派給每個 JSON 物件中的 「number屬性:

"Select": {
   "type": "Select",
   "inputs": {
      "from": [ 1, 2, 3 ],
      "select": { 
         "number": "@item()" 
      }
   },
   "runAfter": {}
},

以下是此動作所建立的陣列:

[ { "number": 1 }, { "number": 2 }, { "number": 3 } ]

若要在其他動作中使用此陣列輸出,請將此輸出傳遞至 Compose 動作:

"Compose": {
   "type": "Compose",
   "inputs": "@body('Select')",
   "runAfter": {
      "Select": [ "Succeeded" ]
   }
},

接著,您可以在其他動作中使用 Compose 宏指令的輸出例如 Office 365 Outlook - 傳送電子郵件動作:

"Send_an_email": {
   "type": "ApiConnection",
   "inputs": {
      "body": {
         "Body": "@{outputs('Compose')}",
         "Subject": "Output array from Select and Compose actions",
         "To": "<your-email@domain>"
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "method": "post",
      "path": "/Mail"
   },
   "runAfter": {
      "Compose": [ "Succeeded" ]
   }
},

資料表動作

此動作會從數位建立 CSV 或 HTML 資料表。 對於具有 JSON 物件的陣列,此動作會自動從物件的屬性名稱建立資料行標頭。 對於具有其他數據類型的陣列,您必須指定資料行標頭和值。 例如,此陣列包含此動作可用於資料行標頭名稱的 「ID」 和 「Product_Name」 屬性:

[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]

"Create_<CSV | HTML>_table": {
   "type": "Table",
   "inputs": {
      "format": "<CSV | HTML>",
      "from": <array>,
      "columns": [ 
         {
            "header": "<column-name>",
            "value": "<column-value>"
         },
         {
            "header": "<column-name>",
            "value": "<column-value>"
         } 
      ]
   },
   "runAfter": {}
}

必要

類型 描述
<CSV HTML> String 您要建立之資料表的格式
<array> 陣列 提供數據表源項目的陣列或表達式

注意:如果來源陣列是空的,動作會建立空的數據表。

選擇性

若要指定或自定義數據行標頭和值,請使用 columns 陣列。 當 header-value 配對具有相同的標頭名稱時,其值會出現在該標頭名稱下的相同數據行中。 否則,每個唯一標頭都會定義唯一的數據行。

類型 描述
<column-name> String 數據列的標頭名稱
<column-value> 任意 該數據列中的值

範例 1

假設您先前建立的 「myItemArray」 變數目前包含此陣列:

[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]

此動作定義會從 「myItemArray」 變數建立 CSV 資料表。 屬性所使用的 from 運算式會使用 variables() 函式,從 「myItemArray」 取得陣列:

"Create_CSV_table": {
   "type": "Table",
   "inputs": {
      "format": "CSV",
      "from": "@variables('myItemArray')"
   },
   "runAfter": {}
}

以下是此動作所建立的 CSV 資料表:

ID,Product_Name 
0,Apples 
1,Oranges 

範例 2

此動作定義會從 「myItemArray」 變數建立 HTML 資料表。 屬性所使用的 from 運算式會使用 variables() 函式,從 「myItemArray」 取得陣列:

"Create_HTML_table": {
   "type": "Table",
   "inputs": {
      "format": "HTML",
      "from": "@variables('myItemArray')"
   },
   "runAfter": {}
}

以下是此動作所建立的 HTML 資料表:

識別碼Product_Name
0蘋果
1橘子

範例 3

此動作定義會從 「myItemArray」 變數建立 HTML 資料表。 不過,此範例會以 「Stock_ID」 和 「Description」 覆寫預設數據行標頭名稱,並將 「Organic」 一詞新增至 「Description」 資料行中的值。

"Create_HTML_table": {
   "type": "Table",
   "inputs": {
      "format": "HTML",
      "from": "@variables('myItemArray')",
      "columns": [ 
         {
            "header": "Stock_ID",
            "value": "@item().ID"
         },
         {
            "header": "Description",
            "value": "@concat('Organic ', item().Product_Name)"
         }
      ]
    },
   "runAfter": {}
},

以下是此動作所建立的 HTML 資料表:

Stock_ID描述
0有機蘋果
1有機柳丁

終止動作

此動作會停止工作流程實例的執行、取消任何進行中的動作、略過任何剩餘的動作,並傳回指定的狀態。 例如,當邏輯應用程式必須完全退出錯誤狀態時,您可以使用 Terminate 宏指令。 此動作不會影響已完成的動作,而且無法出現在 ForeachUntil 迴圈內,包括循序迴圈。

"Terminate": {
   "type": "Terminate",
   "inputs": {
       "runStatus": "<status>",
       "runError": {
            "code": "<error-code-or-name>",
            "message": "<error-message>"
       }
   },
   "runAfter": {}
}

必要

類型 描述
<status> String 執行所要傳回的狀態:“Failed”、“Cancelled” 或 “Succeeded”

選擇性

只有當 「runStatus」 屬性設定為 「Failed」 狀態時,才會套用 「runStatus」 物件的屬性。

類型 描述
<error-code-or-name> String 錯誤的程式代碼或名稱
<error-message> String 描述錯誤的郵件或文字,以及應用程式用戶可以採取的任何動作

範例

此動作定義會停止工作流程執行、將執行狀態設定為 「失敗」,並傳回狀態、錯誤碼和錯誤訊息:

"Terminate": {
    "type": "Terminate",
    "inputs": {
        "runStatus": "Failed",
        "runError": {
            "code": "Unexpected response",
            "message": "The service received an unexpected response. Please try again."
        }
   },
   "runAfter": {}
}

等候動作

此動作會暫停指定間隔的工作流程執行,或直到指定的時間為止,但不會同時暫停兩者。

指定的間隔

"Delay": {
   "type": "Wait",
   "inputs": {
      "interval": {
         "count": <number-of-units>,
         "unit": "<interval>"
      }
   },
   "runAfter": {}
},

指定時間

"Delay_until": {
   "type": "Wait",
   "inputs": {
      "until": {
         "timestamp": "<date-time-stamp>"
      }
   },
   "runAfter": {}
},

必要

類型 描述
<單位數目> 整數 針對 [延遲] 動作,要等候的單位數目
<interval> String 針對 Delay 動作,要等候的間隔:“Second”、“Minute”、“Hour”、“Day”、“Week”、“Month”
<date-time-stamp> String 針對 [ 延遲到] 動作,繼續執行的日期和時間。 此值必須使用 UTC 日期時間格式

範例 1

此動作定義會暫停工作流程 15 分鐘:

"Delay": {
   "type": "Wait",
   "inputs": {
      "interval": {
         "count": 15,
         "unit": "Minute"
      }
   },
   "runAfter": {}
},

範例 2

此動作定義會暫停工作流程,直到指定的時間:

"Delay_until": {
   "type": "Wait",
   "inputs": {
      "until": {
         "timestamp": "2017-10-01T00:00:00Z"
      }
   },
   "runAfter": {}
},

工作流程動作

此動作會呼叫另一個先前建立的邏輯應用程式,這表示您可以包含並重複使用其他邏輯應用程式工作流程。 您也可以在遵循巢狀邏輯應用程式的動作中使用子邏輯或 巢狀 邏輯應用程式的輸出,前提是子邏輯應用程式傳回回應。

Azure Logic Apps 會檢查您要呼叫之觸發程式的存取權,因此請確定您可以存取該觸發程式。 此外,巢狀邏輯應用程式必須符合下列準則:

  • 觸發程式可呼叫巢狀邏輯應用程式,例如 要求HTTP 觸發程式

  • 與您的父邏輯應用程式相同的 Azure 訂用帳戶

  • 若要在父邏輯應用程式中使用巢狀邏輯應用程式的輸出,巢狀邏輯應用程式必須有 回應 動作

"<nested-logic-app-name>": {
   "type": "Workflow",
   "inputs": {
      "body": { "<body-content" },
      "headers": { "<header-content>" },
      "host": {
         "triggerName": "<trigger-name>",
         "workflow": {
            "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Logic/<nested-logic-app-name>"
         }
      }
   },
   "runAfter": {}
}

必要

類型 描述
<nested-logic-app-name> String 您要呼叫之邏輯應用程式的名稱
<trigger-name> String 您想要呼叫的巢狀邏輯應用程式中觸發程式的名稱
<Azure-subscription-ID> String 巢狀邏輯應用程式的 Azure 訂用帳戶標識碼
<Azure-resource-group> String 巢狀邏輯應用程式的 Azure 資源組名

選擇性

類型 描述
<header-content> JSON 物件 要隨呼叫一起傳送的任何標頭
<body-content> JSON 物件 要隨呼叫一起傳送的任何訊息內容

輸出

此動作的輸出會根據巢狀邏輯應用程式的回應動作而有所不同。 如果巢狀邏輯應用程式不包含回應動作,則輸出是空的。

範例

順利完成「Start_search」動作之後,此工作流程動作定義會呼叫另一個名為 「Get_product_information」 的邏輯應用程式,以傳入指定的輸入:

"actions": {
   "Start_search": { <action-definition> },
   "Get_product_information": {
      "type": "Workflow",
      "inputs": {
         "body": {
            "ProductID": "24601",
         },
         "host": {
            "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/InventoryManager-RG/providers/Microsoft.Logic/Get_product_information",
            "triggerName": "Find_product"
         },
         "headers": {
            "content-type": "application/json"
         }
      },
      "runAfter": { 
         "Start_search": [ "Succeeded" ]
      }
   }
},

控制工作流程動作詳細數據

Foreach 動作

此循環動作會逐一查看陣列,並在每個數位專案上執行動作。 根據預設,“for each” 循環會平行執行,最多執行循環數目上限。 如需此最大值,請參閱 限制和設定。瞭解如何 建立「針對每個」迴圈

"For_each": {
   "type": "Foreach",
   "actions": { 
      "<action-1>": { "<action-definition-1>" },
      "<action-2>": { "<action-definition-2>" }
   },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "runtimeConfiguration": {
      "concurrency": {
         "repetitions": <count>
      }
    },
    "operationOptions": "<operation-option>"
}

必要

類型 描述
<action-1...n> String 在每個數位專案上執行的動作名稱
<action-definition-1...n> JSON 物件 執行之動作的定義
<for-each-expression> String 參考指定數位中每個項目的表達式

選擇性

類型 描述
<計數> 整數 根據預設,「針對每個」循環反覆項目會同時執行(同時或平行執行),達到 預設限制。 若要藉由設定新的 <計數> 值來變更此限制,請參閱 變更“for each” 循環並行
<operation-option> String 若要循序執行「for each」 循環,而不是平行執行,請將作業選項>設定<為 或<計數為Sequential 1,但不要同時設定>兩者。 如需詳細資訊,請參閱 序執行「針對每個」迴圈。

範例

這個「for each」 循環會傳送數位中每個項目的電子郵件,其中包含來自內送電子郵件的附件。 迴圈會將電子郵件,包括附件傳送給檢閱附件的人員。

"For_each": {
   "type": "Foreach",
   "actions": {
      "Send_an_email": {
         "type": "ApiConnection",
         "inputs": {
            "body": {
               "Body": "@base64ToString(items('For_each')?['Content'])",
               "Subject": "Review attachment",
               "To": "Sophie.Owen@contoso.com"
                },
            "host": {
               "connection": {
                  "id": "@parameters('$connections')['office365']['connectionId']"
               }
            },
            "method": "post",
            "path": "/Mail"
         },
         "runAfter": {}
      }
   },
   "foreach": "@triggerBody()?['Attachments']",
   "runAfter": {}
}

若要只指定當做觸發程式的輸出傳遞的陣列,此表達式會從觸發程式主體取得 <數位名稱> 陣列。 為了避免陣列不存在而失敗,表達式會使用 ? 運算子:

@triggerBody()?['<array-name>']

If 動作

這個動作是 條件語句,會評估代表條件的表達式,並根據條件為 true 或 false 來執行不同的分支。 如果條件為 true,條件會標示為「成功」狀態。 瞭解如何 建立條件語句

"Condition": {
   "type": "If",
   "expression": { "<condition>" },
   "actions": {
      "<action-1>": { "<action-definition>" }
   },
   "else": {
      "actions": {
        "<action-2>": { "<action-definition" }
      }
   },
   "runAfter": {}
}
類型 描述
<condition> JSON 物件 條件,可以是表達式,以評估
<action-1> JSON 物件 條件>評估為 true 時<要執行的動作
<action-definition> JSON 物件 動作的定義
<action-2> JSON 物件 條件>評估為 false 時<要執行的動作

else 物件中的actions動作會取得這些狀態:

  • 執行並成功時,「成功」
  • 執行並失敗時,「失敗」
  • 當個別分支未執行時,「已略過」

範例

此條件會指定當整數變數的值大於零時,工作流程會檢查網站。 如果變數為零或更少,工作流程會檢查不同的網站。

"Condition": {
   "type": "If",
   "expression": {
      "and": [ {
         "greater": [ "@variables('myIntegerVariable')", 0 ] 
      } ]
   },
   "actions": { 
      "HTTP - Check this website": {
         "type": "Http",
         "inputs": {
         "method": "GET",
            "uri": "http://this-url"
         },
         "runAfter": {}
      }
   },
   "else": {
      "actions": {
         "HTTP - Check this other website": {
            "type": "Http",
            "inputs": {
               "method": "GET",
               "uri": "http://this-other-url"
            },
            "runAfter": {}
         }
      }
   },
   "runAfter": {}
}

條件如何使用表達式

以下是一些示範如何在條件中使用表達式的範例:

JSON 結果
“expression”: “@parameters('<hasSpecialAction>')” 若為布爾表達式,條件會針對評估為 true 的任何值傳遞。

若要將其他類型轉換成布爾值,請使用下列函式: empty()equals()
“expression”: “@greater(actions('<action>'),output.value, parameters('<threshold>'))” 針對比較函式,只有當動作><輸出大於<臨界>值時,動作才會執行。
“expression”: “@or(greater(actions('<action>'),output.value, parameters('<threshold>')),less(actions('<same-action>'),output.value, 100)” 針對邏輯函式和建立巢狀布爾表達式,動作會在動作>輸出<超過<臨界>值或低於 100 時執行。
“expression”: “@equals(length(actions('<action>'),outputs.errors, 0)” 您可以使用數位函式來檢查數位是否有任何專案。 當陣列是空的時,動作就會 errors 執行。

範圍動作

此動作會以邏輯方式將動作分組到 範圍中,這會在該範圍中的動作完成執行之後取得自己的狀態。 然後,您可以使用範圍的狀態來判斷是否執行其他動作。 瞭解如何 建立範圍

"Scope": {
   "type": "Scope",
   "actions": {
      "<inner-action-1>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      },
      "<inner-action-2>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      }
   }
}

必要

類型 描述
<inner-action-1...n> JSON 物件 在範圍內執行的一或多個動作
<action-inputs> JSON 物件 每個動作的輸入

「切換」動作

這個動作也稱為 switch 語句,會將其他動作組織成 案例,並將值指派給每個案例,但若有,則預設案例除外。 當您的工作流程執行時, Switch 動作會比較表達式、物件或令牌中的值與每個案例所指定的值。 如果 Switch 動作找到相符的案例,您的工作流程只會執行該案例的動作。 每次執行 Switch 動作時,只有一個比對案例存在或不存在相符專案。 如果沒有相符專案,Switch 動作會執行默認動作。 瞭解如何 建立 switch 語句

"Switch": {
   "type": "Switch",
   "expression": "<expression-object-or-token>",
   "cases": {
      "Case": {
         "actions": {
           "<action-name>": { "<action-definition>" }
         },
         "case": "<matching-value>"
      },
      "Case_2": {
         "actions": {
           "<action-name>": { "<action-definition>" }
         },
         "case": "<matching-value>"
      }
   },
   "default": {
      "actions": {
         "<default-action-name>": { "<default-action-definition>" }
      }
   },
   "runAfter": {}
}

必要

類型 描述
<expression-object-or-token> 不定 要評估的表達式、JSON 物件或令牌
<action-name> String 要針對相符案例執行的動作名稱
<action-definition> JSON 物件 要針對相符案例執行的動作定義
<matching-value> 不定 要與評估結果比較的值

選擇性

類型 描述
<default-action-name> String 沒有相符大小寫時要執行的預設動作名稱
<default-action-definition> JSON 物件 沒有相符案例時要執行的動作定義

範例

此動作定義會評估回應核准要求電子郵件的人員是否已選取 [核准] 選項或 [拒絕] 選項。 根據這個選擇, Switch 動作會執行相符案例的動作,也就是將另一封電子郵件傳送給回應者,但在每個案例中使用不同的措辭。

"Switch": {
   "type": "Switch",
   "expression": "@body('Send_approval_email')?['SelectedOption']",
   "cases": {
      "Case": {
         "actions": {
            "Send_an_email": { 
               "type": "ApiConnection",
               "inputs": {
                  "Body": "Thank you for your approval.",
                  "Subject": "Response received", 
                  "To": "Sophie.Owen@contoso.com"
               },
               "host": {
                  "connection": {
                     "name": "@parameters('$connections')['office365']['connectionId']"
                  }
               },
               "method": "post",
               "path": "/Mail"
            },
            "runAfter": {}
         },
         "case": "Approve"
      },
      "Case_2": {
         "actions": {
            "Send_an_email_2": { 
               "type": "ApiConnection",
               "inputs": {
                  "Body": "Thank you for your response.",
                  "Subject": "Response received", 
                  "To": "Sophie.Owen@contoso.com"
               },
               "host": {
                  "connection": {
                     "name": "@parameters('$connections')['office365']['connectionId']"
                  }
               },
               "method": "post",
               "path": "/Mail"
            },
            "runAfter": {}     
         },
         "case": "Reject"
      }
   },
   "default": {
      "actions": { 
         "Send_an_email_3": { 
            "type": "ApiConnection",
            "inputs": {
               "Body": "Please respond with either 'Approve' or 'Reject'.",
               "Subject": "Please respond", 
               "To": "Sophie.Owen@contoso.com"
            },
            "host": {
               "connection": {
                  "name": "@parameters('$connections')['office365']['connectionId']"
               }
            },
            "method": "post",
            "path": "/Mail"
         },
         "runAfter": {} 
      }
   },
   "runAfter": {
      "Send_approval_email": [ 
         "Succeeded"
      ]
   }
}

直到動作

此循環動作包含執行直到指定條件為 true 的動作。 迴圈會在所有其他動作執行之後,將條件檢查為最後一個步驟。 您可以在物件中包含 "actions" 多個動作,而且動作必須定義至少一個限制。 瞭解如何 建立「直到」迴圈

 "Until": {
   "type": "Until",
   "actions": {
      "<action-name>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      },
      "<action-name>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      }
   },
   "expression": "<condition>",
   "limit": {
      "count": <loop-count>,
      "timeout": "<loop-timeout>"
   },
   "runAfter": {}
}
類型 描述
<action-name> String 您要在循環內執行的動作名稱
<action-type> String 您要執行的動作類型
<action-inputs> 各種 要執行之動作的輸入
<condition> String 在迴圈中的所有動作完成執行之後要評估的條件或表達式
<loop-count> 整數 動作可以執行的循環數目上限。 如需預設限制和上限的詳細資訊,請參閱 Azure Logic Apps 的限制和設定。
<loop-timeout> String 循環執行時間最長的限制。 預設值 timeoutPT1H,這是必要的 ISO 8601 格式

注意

如果表達式相依於 Until 迴圈內任何動作的輸出,請確定您考慮到該動作所產生的任何失敗。

範例

此循環動作定義會將 HTTP 要求傳送至指定的網址,直到符合下列其中一個條件:

  • 要求會取得具有 「200 OK」 狀態代碼的回應。
  • 迴圈已執行 60 次。
  • 迴圈已執行一小時。
 "Run_until_loop_succeeds_or_expires": {
    "type": "Until",
    "actions": {
        "HTTP": {
            "type": "Http",
            "inputs": {
                "method": "GET",
                "uri": "http://myurl"
            },
            "runAfter": {}
        }
    },
    "expression": "@equals(outputs('HTTP')['statusCode'], 200)",
    "limit": {
        "count": 60,
        "timeout": "PT1H"
    },
    "runAfter": {}
}

Webhook 和訂閱

以 Webhook 為基礎的觸發程式和動作不會定期檢查端點,而是會改為在這些端點等候特定事件或數據。 這些觸發程式和動作會藉由提供端點可以傳送回應的回呼 URL 來訂閱端點。

subscribe呼叫會在工作流程以任何方式變更時發生,例如認證更新時,或觸發程式或動作的輸入參數變更時。 此呼叫會使用與標準 HTTP 動作相同的參數。

unsubscribe 作業使觸發程式或動作無效時,呼叫會自動發生,例如:

  • 刪除或停用觸發程式。
  • 刪除或停用工作流程。
  • 刪除或停用訂用帳戶。

為了支持這些呼叫, @listCallbackUrl() 表達式會針對觸發程式或動作傳回唯一的「回呼 URL」。 此 URL 代表使用服務 REST API 之端點的唯一標識碼。 此函式的參數與 Webhook 觸發程式或動作相同。

變更異步持續時間

針對觸發程式和動作,您可以藉由新增 limit.timeout 屬性,將異步模式的持續時間限制為特定的時間間隔。 如此一來,如果動作在間隔失效時尚未完成,動作的狀態會以程式代碼標示為 Cancelled ActionTimedOut 。 屬性 timeout 使用 ISO 8601 格式

"<trigger-or-action-name>": {
   "type": "Workflow | Webhook | Http | ApiConnectionWebhook | ApiConnection",
   "inputs": {},
   "limit": {
      "timeout": "PT10S"
   },
   "runAfter": {}
}

運行時間組態設定

您可以將這些 runtimeConfiguration 屬性新增至觸發程式或動作定義,以變更觸發程式和動作的預設運行時間行為。

屬性 類型​ 描述 觸發程式或動作
runtimeConfiguration.concurrency.runs 整數 變更可以同時執行之工作流程實例數目的預設限制(同時或平行)。 調整此值有助於限制後端系統接收的要求數目。

runs 屬性設定為 1 的運作方式,與將 operationOptions 屬性 SingleInstance設定為 相同。 您可以設定任一屬性,但不能同時設定兩者。

若要變更預設限制,請參閱循序變更觸發程式並行或觸發實例。
所有觸發程式
runtimeConfiguration.concurrency.maximumWaitingRuns 整數 變更邏輯應用程式已執行最大並行實例時,必須等候執行之工作流程實例數目的預設限制

若要變更預設限制,請參閱 變更等候執行限制
所有觸發程式
runtimeConfiguration.concurrency.repetitions 整數 變更可以同時執行之「針對每個」循環反覆項目數目的預設限制(同時或平行執行)。

repetitions 屬性設定為 1 的運作方式,與將 operationOptions 屬性 SingleInstance設定為 相同。 您可以設定任一屬性,但不能同時設定兩者。

若要變更預設限制,請參閱變更“for each” 並行或序執行 “for each” 迴圈。
動作:

Foreach
runtimeConfiguration.paginationPolicy.minimumItemCount 整數 針對支援並開啟分頁的特定動作,此值會 指定要擷取的結果數目下限

若要開啟分頁,請參閱 使用分頁取得大量數據、專案或結果
動作:不同
runtimeConfiguration.secureData.properties 陣列 在許多觸發程式和動作上,這些設定會隱藏邏輯應用程式的執行歷程記錄中的輸入、輸出或兩者。

若要深入瞭解如何保護此數據,請參閱 隱藏執行歷程記錄的輸入和輸出。
大部分的觸發程式和動作
runtimeConfiguration.staticResult JSON 物件 針對支援 並開啟靜態結果設定的動作,staticResult物件具有下列屬性:

- name,它會參考目前動作的靜態結果定義名稱,該名稱會出現 staticResults 在邏輯應用程式工作流程 definition 屬性中的屬性內。 如需詳細資訊,請參閱 靜態結果 - 工作流程定義語言的架構參考。

- staticResultOptions,指定靜態結果 Enabled 是否為目前動作。

若要開啟靜態結果,請參閱 設定靜態結果以模擬數據測試邏輯應用程式
動作:不同

作業選項

您可以使用觸發程式或動作定義中的 屬性來變更觸發程式和動作 operationOptions 的預設行為。

作業選項 類型 描述 觸發程式或動作
DisableAsyncPattern String 以同步方式執行 HTTP 型動作,而不是以異步方式執行。



若要設定此選項,請參閱 同步執行動作。
行動:

Api 連線 ion
HTTP
回應
IncludeAuthorizationHeadersInOutputs String 針對讓 OAuth 使用 Microsoft Entra ID 來授權對要求型觸發程式端點進行輸入呼叫的存取權的邏輯應用程式Authorization請在觸發程式輸出中包含來自 OAuth 存取令牌的標頭。 如需詳細資訊,請參閱 在要求觸發程序輸出中包含「授權」標頭。 觸發器:

要求
HTTP Webhook
Sequential String 一次執行一個迴圈反覆運算一次,而不是同時以平行方式執行。

此選項的運作方式與將 runtimeConfiguration.concurrency.repetitions 屬性設定為 1相同。 您可以設定任一屬性,但不能同時設定兩者。



若要設定此選項,請參閱 序執行“for each” 迴圈。
動作:

Foreach
SingleInstance String 循序執行每個邏輯應用程式實例的觸發程式,並等候先前作用中的執行完成,再觸發下一個邏輯應用程式實例。



此選項的運作方式與將 runtimeConfiguration.concurrency.runs 屬性設定為 1相同。 您可以設定任一屬性,但不能同時設定兩者。

若要設定此選項,請參閱 序觸發實例。
所有觸發程式
SuppressWorkflowHeaders String 請勿在輸出要求中傳送 x-ms-* 元數據標頭。 根據預設,Azure Logic Apps 會在輸出要求中包含標頭名稱中前置 x-ms- 詞的額外元數據標頭。 不過,某些舊版服務不接受具有額外未知標頭的要求,導致要求失敗。 行動:

HTTP
函式
APIManagement
SuppressWorkflowHeadersOnResponse String 請勿在回應輸入觸發程式要求時傳送 x-ms-* 元數據標頭。 根據預設,Azure Logic Apps 會將回應傳送給輸入要求,這些要求會包含標頭名稱中具有 x-ms- 前置詞的額外元數據標頭。 不過,某些舊版服務不接受具有額外未知標頭的要求或回應,導致要求失敗。 觸發器:

要求
HTTP Webhook

變更觸發程式並行

根據預設,邏輯應用程式工作流程實例會同時執行(同時或平行執行)。 此行為表示每個觸發程序實例會在先前作用中的工作流程實例完成執行之前引發。 不過,並行執行的實例數目有 預設限制。 當同時執行的工作流程實例數目達到此限制時,任何其他新實例都必須等候執行。 此限制有助於控制後端系統接收的要求數目。

當您開啟觸發程式的並行控制時,觸發程式實例會平行執行到 預設限制。 若要變更此預設並行限制,您可以使用程式代碼檢視編輯器或工作流程設計工具,因為透過設計工具變更並行設定會新增或更新 runtimeConfiguration.concurrency.runs 基礎觸發程式定義中的 屬性,反之亦然。 這個屬性會控制可以平行執行的新工作流程實例數目上限。

在觸發程式上啟用並行之前,請先檢閱下列考慮:

  • 啟用並行控制之後,您無法停用並行存取。

  • 如果並行觸發程式執行數目上限達到平行處理原則的最大程度,後續觸發程式執行可能會遇到節流或「429 - 太多要求」錯誤。 如果您設定處理 429 錯誤的重試原則,觸發程式可能會遇到重試和節流行為的迴圈,而導致處理新的觸發程式要求長時間延遲。

  • 啟用並行存取時,清除數位的SplitOn限制會大幅降低。 如果項目數目超過此限制,則會停用SplitOn功能。

  • 啟用並行時,長時間執行的邏輯應用程式實例可能會導致新的邏輯應用程式實例進入等候狀態。 此狀態可防止 Azure Logic Apps 建立新的實例,即使並行執行數目小於指定的並行執行數目上限,也會發生此情況。

    • 若要中斷此狀態,請取消仍在執行的最早實例

      1. 在邏輯應用程式功能表上,選取 [概觀]

      2. 在 [ 執行歷程記錄] 區段中,選取仍在執行的最早實例,例如:

        選取最早的執行中實例

        提示

        若要只檢視仍在執行的實例,請開啟 [ 所有 ] 列表,然後選取 [ 執行中]。

      3. 在 [邏輯應用程式執行] 底下,選取 [取消執行]。

        尋找最早的執行中實例

    • 若要解決此問題,請將逾時新增至任何可能保留這些執行動作的逾時。 如果您正在程式代碼編輯器中工作,請參閱 變更異步持續時間。 否則,如果您使用設計工具,請遵循下列步驟:

      1. 在邏輯應用程式工作流程中,選取您想要新增逾時動作。 在動作的右上角,選取省略號 (...) 按鈕,然後選取 [設定]。

        開啟動作設定

      2. 在 [逾時] 底下,以 ISO 8601 格式指定逾時持續時間

        指定逾時持續時間

  • 若要循序執行邏輯應用程式,請使用程式代碼檢視編輯器或設計工具,將觸發程式的並行設定為 1 。 請確定您也不會在程式代碼檢視編輯器中將觸發程式的 operationOptions 屬性設定為 SingleInstance 。 否則,您會收到驗證錯誤。 如需詳細資訊,請參閱 序觸發實例。

在程式代碼檢視中編輯

在基礎觸發程式定義中,新增 runtimeConfiguration.concurrency.runs 屬性,並根據觸發程式並行限制設定值。 若要循序執行工作流程,請將 屬性值設定為 1

此範例會將並行執行限制為10個實例:

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": 10
      }
   }
}

如需詳細資訊,請參閱 運行時間組態設定

在工作流程設計工具中編輯

  1. 在觸發程式的右上角,選取省略號 (...) 按鈕,然後選取 [設定]。

  2. 在 [並行控制] 下,將 [限制] 設定為 [開啟]。

  3. 將 [ 平行處理原則 的程度] 滑桿拖曳至您想要的值。 若要循序執行邏輯應用程式,請將滑桿值拖曳至 1

變更 「for each」 並行存取

根據預設,「針對每個」循環反覆運算都會同時執行(同時或平行執行)。 此行為表示每個反覆專案都會在上一個反覆專案完成執行之前開始執行。 不過,同時執行的反覆項目數目有 預設限制。 當同時執行的反覆項目數目達到此限制時,任何其他反覆專案都必須等候執行。

若要變更預設限制,您可以使用程式代碼檢視編輯器或工作流程設計工具,因為透過設計工具變更並行設定會新增或更新 runtimeConfiguration.concurrency.repetitions 基礎 “for each” 動作定義中的 屬性,反之亦然。 這個屬性會控制可以平行執行的反覆項目數目上限。

注意

如果您使用設計工具或程式碼檢視編輯器,將 「for each」 動作設定為循序執行,請勿在程式碼檢視編輯器中將動作的 operationOptions 屬性設定為 Sequential 。 否則,您會收到驗證錯誤。 如需詳細資訊,請參閱 序執行「針對每個」迴圈。

在程式代碼檢視中編輯

在基礎 「for each」 定義中,新增或更新 runtimeConfiguration.concurrency.repetitions 屬性,其值範圍 1 可以是 和 50

以下是將並行執行限制為10個反覆專案的範例:

"For_each" {
   "type": "Foreach",
   "actions": { "<actions-to-run>" },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "runtimeConfiguration": {
      "concurrency": {
         "repetitions": 10
      }
   }
}

如需詳細資訊,請參閱 運行時間組態設定

在工作流程設計工具中編輯

  1. 在 [針對每個動作] 的右上角,選取省略號 (...) 按鈕,然後選取 [設定]。

  2. 在 [並行控制] 下,將 [並行控制] 設定為 [開啟]。

  3. 將 [ 平行處理原則 的程度] 滑桿拖曳至您想要的值。 若要循序執行邏輯應用程式,請將滑桿值拖曳至 1

變更等候執行限制

根據預設,邏輯應用程式工作流程實例會同時執行(同時或平行執行)。 此行為表示每個觸發程序實例會在先前作用中的工作流程實例完成執行之前引發。 不過,並行 執行的工作流程實例數目上存在預設限制 。 當並行執行數目達到此限制時,任何其他新的工作流程實例都必須等候執行。 等候的工作流程實例數目上也存在預設限制。 當等候的實例數目達到此限制時,Azure Logic Apps 不再接受要執行的新工作流程實例。 要求和 Webhook 觸發程式會傳回 429 - 太多要求 錯誤,而週期性觸發程式會開始略過輪詢嘗試。

您可以 變更觸發 程式並行的預設限制,以及等候執行的預設限制。 不過,這項變更主要是讓觸發程式變慢,以因並行而減輕壓力。 例如,如果您有輪詢觸發程式,且等候執行佇列已滿,則 Azure Logic Apps 會停止輪詢。 如果您的工作流程使用要求型觸發程式,且等候的執行佇列已滿,Azure Logic Apps 就會開始傳回 429 錯誤。 在某些情況下,Azure Logic Apps 無法在不引入失敗的情況下停止觸發程式輪詢,並選擇將這類執行新增至等候執行佇列,而不會讓呼叫執行失敗。

在基礎觸發程式定義中,新增 runtimeConfiguration.concurrency.maximumWaitingRuns 屬性,其值範圍 1 可以從 到 100

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "runtimeConfiguration": {
      "concurrency": {
         "maximumWaitingRuns": 50
      }
   }
}

如需詳細資訊,請參閱 運行時間組態設定

循序觸發實例

若要只在上一個實例完成執行之後執行每個邏輯應用程式工作流程實例,請將觸發程式設定為循序執行。 您可以使用程式代碼檢視編輯器或工作流程設計工具,因為透過設計工具變更並行設定也會新增或更新 runtimeConfiguration.concurrency.runs 基礎觸發程式定義中的屬性,反之亦然。

注意

當您使用設計工具或程式碼檢視編輯器來設定要循序執行的觸發程式時,請勿在程式代碼檢視編輯器中將觸發程式的 operationOptions 屬性設定為 Sequential 。 否則,您會收到驗證錯誤。

在程式代碼檢視中編輯

在觸發程式定義中,設定其中一個屬性,但不能同時設定兩者。

runtimeConfiguration.concurrency.runs 屬性設定為 1:

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": 1
      }
   }
}

-或-

operationOptions 屬性設定為 SingleInstance:

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "operationOptions": "SingleInstance"
}

如需詳細資訊,請參閱 運行時間組態設定作業選項

在工作流程設計工具中編輯

  1. 在觸發程式的右上角,選取省略號 (...) 按鈕,然後選取 [設定]。

  2. 在 [並行控制] 下,將 [限制] 設定為 [開啟]。

  3. 將 [ 平行處理原則 的程度] 滑桿拖曳至數位 1

循序執行 「for each」 循環

若要只在上一個反覆專案完成執行之後,才執行「針對每個」循環反覆運算,請將「針對每個」動作設定為循序執行。 您可以使用程式代碼檢視編輯器或工作流程設計工具,因為透過設計工具變更動作的並行性也會在基礎動作定義中新增或更新 runtimeConfiguration.concurrency.repetitions 屬性,反之亦然。

注意

當您使用設計工具或程式碼檢視編輯器設定要循序執行的每個動作時,請勿在程式代碼檢視編輯器中將動作的 operationOptions 屬性設定為 Sequential 。 否則,您會收到驗證錯誤。

在程式代碼檢視中編輯

在動作定義中,設定其中一個屬性,但不能同時設定兩者。

runtimeConfiguration.concurrency.repetitions 屬性設定為 1:

"For_each" {
   "type": "Foreach",
   "actions": { "<actions-to-run>" },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "runtimeConfiguration": {
      "concurrency": {
         "repetitions": 1
      }
   }
}

-或-

operationOptions 屬性設定為 Sequential:

"For_each" {
   "type": "Foreach",
   "actions": { "<actions-to-run>" },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "operationOptions": "Sequential"
}

如需詳細資訊,請參閱 運行時間組態設定作業選項

在工作流程設計工具中編輯

  1. 在 [針對每個動作的右上角],選取省略號 (...) 按鈕,然後選取 [設定]。

  2. 在 [並行控制] 下,將 [並行控制] 設定為 [開啟]。

  3. 將 [ 平行處理原則 的程度] 滑桿拖曳至數位 1

在同步作業模式中執行動作

根據預設,Azure Logic Apps 中的 HTTP 動作和 API 連線 ion 動作會遵循標準異步操作模式,而響應動作則會遵循同步作業模式。 異步模式會指定動作呼叫或傳送要求至指定的端點、服務、系統或 API 之後,接收者會立即傳回 “202 ACCEPTED” 回應。 此代碼確認接收者已接受要求,但尚未完成處理。 回應可以包含 location 標頭,指定 URL 和重新整理標識符,呼叫端可用來持續輪詢或檢查異步要求的狀態,直到接收者停止處理並傳回 “200 OK” 成功回應或其他非 202 回應為止。 如需詳細資訊,請參閱非同步微服務整合強制微服務自主性

  • 在邏輯應用程式設計工具中,HTTP 動作、API 連線 ion 動作和回應動作具有異步模式設定。 啟用時,此設定會指定呼叫端不會等待處理完成,並可繼續進行下一個動作,但會繼續檢查狀態,直到處理停止為止。 如果停用,此設定會指定呼叫端等候處理完成,再繼續進行下一個動作。 若要尋找此設定,請遵循下列步驟:

    1. 在 HTTP 動作的標題列上,選取省略號 (...) 按鈕,以開啟動作的設定。

    2. 尋找 [非同步模式] 設定。

      [異步模式] 設定

  • 在動作的基礎 JavaScript 物件表示法 (JSON) 定義中,HTTP 動作和 API 連線 ion 動作會隱含地遵循異步操作模式。

在某些情況下,您可能會想要讓動作改為遵循同步模式。 例如,當您使用 HTTP 動作時,您可能會想要:

在這些情況下,您可以使用下列選項,以同步方式執行動作:

關閉 異步模式 設定

  1. 在邏輯應用程式設計工具的動作標題列上,選取省略號 (...) 按鈕,以開啟動作的設定。

  2. 尋找 [非同步模式] 設定,在啟用時設為 [關閉],然後選取 [完成]

    關閉 [異步模式] 設定

停用動作 JSON 定義的非同步模式

在動作的基礎 JSON 定義中,新增並將 「operationOptions」 屬性設定"DisableAsyncPattern" 在動作區"inputs"段底下,例如:

"<some-long-running-action>": {
   "type": "Http",
   "inputs": { "<action-inputs>" },
   "operationOptions": "DisableAsyncPattern",
   "runAfter": {}
}

驗證觸發程式和動作

HTTP 和 HTTPS 端點支援不同類型的驗證。 根據您用來發出輸出呼叫或要求來存取這些端點的觸發程式或動作,您可以從不同的驗證類型範圍中選取。 如需詳細資訊,請參閱對於輸出驗證新增驗證

下一步