在 Azure Logic Apps 中使用 HTTP Webhook 訂閱並等候事件執行工作流程
適用於:Azure Logic Apps (使用量 + 標準)
您可以使用 HTTP Webhook 觸發程序或動作訂閱服務端點、等候特定事件,並在工作流程中執行特定動作,而不使用定期檢查或輪詢服務端點的觸發程序或呼叫該端點的動作。
以下是某些範例以 Webhook 為基礎的工作流程:
- 等候事件從 Azure 事件中樞抵達,再觸發工作流程執行。
- 等候核准再繼續工作流程。
本指南說明如何使用 HTTP Webhook 觸發程序和 Webhook 動作,讓您的工作流程可接收及回應服務端點上的事件。
Webhook 如何運作?
Webhook 觸發程序以事件為基礎,不需要定期檢查或輪詢新的資料或事件。 當您將 Webhook 觸發程序新增至空白工作流程,並儲存工作流程後,或是重新啟用已停用的邏輯應用程式資源後,Webhook 觸發程序就會向指定的服務端點註冊回呼 URL,藉以訂閱該端點。 然後,觸發程序會等候該服務端點呼叫 URL,進而引發觸發程序並啟動工作流程。 與要求觸發程序相仿,Webhook 觸發程序會立即引發。 Webhook 觸發程序也會持續訂閱服務端點,除非您手動執行下列動作:
- 變更觸發程序的參數值。
- 刪除觸發程序,然後儲存您的工作流程。
- 停用您的邏輯應用程式資源。
與 Webhook 觸發程序相仿,Webhook 動作也以事件為基礎。 當您將 Webhook 動作新增至現有的工作流程,並儲存工作流程後,或是重新啟用已停用的邏輯應用程式資源後,Webhook 動作就會向指定的服務端點註冊回呼 URL,藉以訂閱該端點。 當工作流程執行時,Webhook 動作會暫停工作流程,並等候服務端點呼叫 URL,工作流程才會繼續執行。 發生下列情況時,Webhook 動作會取消訂閱服務端點:
- Webhook 動作成功完成時。
- 工作流程執行在等候回應時遭到取消。
- 工作流程執行逾時之前。
- 您可以變更 Webhook 觸發程序用作輸入的任何 Webhook 動作參數值。
例如,Office 365 Outlook 連接器的傳送核准電子郵件動作是遵循此模式的 Webhook 動作範例。 您可使用 Webhook 動作來將此模式擴充到任何服務。
如需詳細資訊,請參閱下列文件:
對於邏輯應用程式的輸入呼叫,如需其加密、安全性和授權的相關資訊,例如傳輸層安全性 (TLS) (先前稱為安全通訊端層 (SSL)),或 Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth),請參閱安全存取和資料 - 存取要求型觸發程序的輸入呼叫。
連接器技術參考
如需觸發程序和動作參數的詳細資訊,請參閱 HTTP Webhook 參數。
必要條件
Azure 帳戶和訂用帳戶。 如果您沒有 Azure 訂用帳戶,請先註冊免費的 Azure 帳戶。
已部署端點的 URL,或視需要針對工作流程中的 Webhook 觸發程序或工作流程中的 Webhook 動作支援 Webhook 訂閱或取消訂閱模式的 API
您要用來在目標端點等候特定事件的標準或使用量邏輯應用程式工作流程。 若要從 HTTP Webhook 觸發程序啟動,請建立具有空白工作流程的邏輯應用程式。 若要使用 HTTP Webhook 動作,請使用您所需的任何觸發程序來啟動工作流程。 這個範例會使用 HTTP 觸發程序作為第一個步驟。
新增 HTTP Webhook 觸發程序
此內建觸發程序會呼叫目標服務上的訂閱端點並使用目標服務註冊回呼 URL。 工作流程接著會等候目標服務將 HTTP POST
要求傳送至回呼 URL。 發生此事件時,觸發程序會引發並將要求中的資料傳遞至工作流程。
在 Azure 入口網站上,於設計工具中開啟您的標準邏輯應用程式和空白工作流程。
依照這些一般步驟,將名為 HTTP Webhook 的觸發程序新增至您的工作流程。
此範例會將觸發程序重新命名為 HTTP Webhook 觸發程序,藉此讓步驟的名稱更具描述性。 此外,此範例稍後會新增 HTTP Webhook 動作,而這兩個名稱都必須是唯一的。
提供所要用於訂閱或取消訂閱呼叫的 HTTP Webhook 觸發程序參數值。
屬性 必要 描述 訂閱 - 方法 Yes 訂閱目標端點時要使用的方法 訂閱 - URI Yes 要用於訂閱目標端點的 URL 訂閱 - 本文 No 要包含在訂閱要求中的訊息本文。 此範例包含唯一識別訂閱者 (即邏輯應用程式) 的回呼 URL,做法是使用 @listCallbackUrl()
運算式來擷取邏輯應用程式的回呼 URL。取消訂閱 - 方法 No 從目標端點取消訂閱時要使用的方法 取消訂閱 - URI No 要用於從目標端點取消訂閱的 URL 取消訂閱 - 本文 No 要包含在取消訂閱要求中的選用訊息本文
附註:此屬性不支援使用listCallbackUrl()
函式。 然而,觸發程序會自動包含並傳送標頭x-ms-client-tracking-id
和x-ms-workflow-operation-name
,目標服務可用來唯一識別訂閱者。注意
針對 [取消訂閱 - 方法] 和 [取消訂閱 - URI] 屬性,請開啟 [進階參數] 列表,將它們新增至您的動作。
例如,下列觸發程序包含執行訂閱和取消訂閱作業時要使用的方法、URL 和訊息本文。
如果必須使用驗證,您可以新增 [訂閱 - 驗證] 和 [取消訂閱 - 驗證] 屬性。 如需 HTTP Webhook 可用驗證類型的詳細資訊,請參閱將驗證新增至輸出呼叫。
使用引發觸發程序時執行的動作,繼續建置您的工作流程。
完成後,請儲存您的工作流程。 在設計師工具列上選取儲存。
儲存工作流程會呼叫目標服務上的訂閱端點,並註冊回呼 URL。 工作流程接著會等候目標服務將 HTTP POST
要求傳送至回呼 URL。 發生此事件時,觸發程序會引發並將要求中的資料傳遞至工作流程。 如果此作業成功完成,觸發程序會從端點取消訂閱,而工作流程會繼續執行下一個動作。
新增 HTTP Webhook 工作
此內建東做呼叫會呼叫目標服務上的訂閱端點並使用目標服務註冊回呼 URL。 工作流程接著會暫停,並等候目標服務將 HTTP POST
要求傳送至回呼 URL。 發生此事件時,動作會將要求中的資料傳遞至工作流程。 如果此作業成功完成,動作會從端點取消訂閱,而工作流程會繼續執行下一個動作。
此範例使用 HTTP Webhook 觸發程序作為第一個步驟。
在 Azure 入口網站上,於設計工具中開啟您的標準邏輯應用程式和工作流程。
依照這些一般步驟,將名為 HTTP Webhook 的動作新增至您的工作流程。
此範例會將動作重新命名為 HTTP Webhook 動作,藉此讓步驟的名稱更具描述性。
提供 HTTP Webhook 動作參數的值,與所要用於訂閱和取消訂閱呼叫的 HTTP Webhook 觸發程序參數相似。
屬性 必要 描述 訂閱 - 方法 Yes 訂閱目標端點時要使用的方法 訂閱 - URI Yes 要用於訂閱目標端點的 URL 訂閱 - 本文 No 要包含在訂閱要求中的訊息本文。 此範例包含唯一識別訂閱者 (即邏輯應用程式) 的回呼 URL,做法是使用 @listCallbackUrl()
運算式來擷取邏輯應用程式的回呼 URL。取消訂閱 - 方法 No 從目標端點取消訂閱時要使用的方法 取消訂閱 - URI No 要用於從目標端點取消訂閱的 URL 取消訂閱 - 本文 No 要包含在取消訂閱要求中的選用訊息本文
附註:此屬性不支援使用listCallbackUrl()
函式。 然而,動作會自動包含並傳送標頭x-ms-client-tracking-id
和x-ms-workflow-operation-name
,目標服務可用來唯一識別訂閱者。注意
針對 [取消訂閱 - 方法] 和 [取消訂閱 - URI] 屬性,請開啟 [進階參數] 列表,將它們新增至您的動作。
例如,下列動作包含執行訂閱和取消訂閱作業時要使用的方法、URL 和訊息本文。
若要新增其他動作屬性,請開啟 [進階參數] 清單。
例如,如果必須使用驗證,您可新增訂閱 - 驗證和取消訂閱 - 驗證屬性。 如需 HTTP Webhook 可用驗證類型的詳細資訊,請參閱將驗證新增至輸出呼叫。
完成後,請儲存您的工作流程。 在設計師工具列上選取儲存。
此動作執行時,工作流程會呼叫目標服務上的訂閱端點,並註冊回呼 URL。 工作流程接著會暫停,並等候目標服務將 HTTP POST
要求傳送至回呼 URL。 發生此事件時,動作會將要求中的資料傳遞至工作流程。 如果此作業成功完成,動作會從端點取消訂閱,而工作流程會繼續執行下一個動作。
觸發程序和動作輸出
以下是 HTTP Webhook 觸發程序或動作輸出的詳細資訊,這會傳回這項資訊:
屬性名稱 | 類型 | 描述 |
---|---|---|
標題 | object | 要求的標頭 |
本文 | object | 具有來自要求之本文內容的物件 |
狀態碼 | int | 要求的狀態碼 |
狀態碼 | 描述 |
---|---|
200 | 確定 |
202 | 已接受 |
400 | 錯誤要求 |
401 | 未經授權 |
403 | 禁止 |
404 | 找不到 |
500 | 內部伺服器錯誤。 發生未知錯誤。 |