在 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),請參閱安全存取和數據 - 對要求型觸發程式的輸入呼叫存取。

連線 or 技術參考

如需觸發程式和動作參數的詳細資訊,請參閱 HTTP Webhook 參數

必要條件

  • Azure 帳戶和訂用帳戶。 如果您沒有 Azure 訂用帳戶, 請註冊免費的 Azure 帳戶

  • 已部署端點或 API 的 URL,可適當地針對工作流程中的 Webhook 觸發程式,或工作流程中的 Webhook 動作,支援 Webhook 訂閱和取消訂閱模式

  • 您想要在目標端點等候特定事件的標準或取用邏輯應用程式工作流程。 若要從 HTTP Webhook 觸發程式開始,請使用空白工作流程建立邏輯應用程式。 若要使用 HTTP Webhook 動作,請使用您想要的任何觸發程式來啟動您的工作流程。 此範例會使用 HTTP 觸發程式作為第一個步驟。

新增 HTTP Webhook 觸發程式

此內建觸發程式會在目標服務上呼叫訂閱端點,並向目標服務註冊回呼 URL。 然後,您的工作流程會等候目標服務將要求傳送 HTTP POST 至回呼 URL。 發生此事件時,觸發程式會引發,並將要求中的任何數據一起傳遞至工作流程。

  1. Azure 入口網站 中,開啟標準邏輯應用程式和設計工具中的空白工作流程。

  2. 請遵循下列一般步驟,將名為 HTTP Webhook 的觸發程式新增至您的工作流程

    此範例會將觸發程式重新命名為 HTTP Webhook 觸發程式 ,讓步驟具有更具描述性的名稱。 此外,此範例稍後會新增 HTTP Webhook 動作,而且這兩個名稱都必須是唯一的。

  3. 提供您要用於訂閱和取消訂閱呼叫之 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 屬性,請開啟 [進階參數] 清單,將它們新增至您的動作。

    例如,下列觸發程式包含執行訂閱和取消訂閱作業時要使用的方法、URI 和訊息主體。

    Screenshot shows Standard workflow with HTTP Webhook trigger parameters.

    如果您需要使用驗證,您可以新增 訂閱 - 驗證取消訂閱 - 驗證 屬性。 如需 HTTP Webhook 可用驗證類型的詳細資訊,請參閱 將驗證新增至輸出呼叫

  4. 使用觸發程式引發時執行的動作繼續建置您的工作流程。

  5. 完成後,請儲存您的工作流程。 在設計師工具列上選取儲存

儲存您的工作流程會在目標服務上呼叫訂閱端點,並註冊回呼 URL。 然後,您的工作流程會等候目標服務將要求傳送 HTTP POST 至回呼 URL。 發生此事件時,觸發程式會引發,並將要求中的任何數據一起傳遞至工作流程。 如果此作業順利完成,觸發程式會從端點取消訂閱,而您的工作流程會繼續下一個動作。

新增 HTTP Webhook 動作

此內建動作會呼叫目標服務上的訂閱端點,並向目標服務註冊回呼 URL。 然後,您的工作流程會暫停並等候目標服務將要求傳送 HTTP POST 至回呼 URL。 發生此事件時,動作會將要求中的任何數據傳遞至工作流程。 如果作業順利完成,動作會從端點取消訂閱,而您的工作流程會繼續下一個動作。

此範例會使用 HTTP Webhook 觸發程式作為第一個步驟。

  1. Azure 入口網站 中,開啟設計工具中的標準邏輯應用程式和工作流程。

  2. 請遵循下列一般步驟,將名為 HTTP Webhook 的動作新增至您的工作流程

    此範例會將動作重新命名為 HTTP Webhook 動作 ,讓步驟具有更具描述性的名稱。

  3. 提供 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 屬性,請開啟 [進階參數] 清單,將它們新增至您的動作。

    例如,下列動作包含執行訂閱和取消訂閱作業時要使用的方法、URI 和訊息主體。

    Screenshot shows Standard workflow with HTTP Webhook action parameters.

  4. 若要新增其他動作屬性,請開啟 [ 進階參數 ] 清單。

    例如,如果您需要使用驗證,您可以新增 訂閱 - 驗證取消訂閱 - 驗證 屬性。 如需 HTTP Webhook 可用驗證類型的詳細資訊,請參閱 將驗證新增至輸出呼叫

  5. 完成後,請儲存您的工作流程。 在設計師工具列上選取儲存

執行此動作時,您的工作流程會在目標服務上呼叫訂閱端點,並註冊回呼 URL。 工作流程接著會暫停並等候目標服務將要求傳送 HTTP POST 至回呼 URL。 發生此事件時,動作會將要求中的任何數據傳遞至工作流程。 如果作業順利完成,動作會從端點取消訂閱,而您的工作流程會繼續下一個動作。

觸發程式和動作輸出

以下是 HTTP Webhook 觸發程式或動作輸出的詳細資訊,其會傳回這項資訊:

屬性名稱 類型​ 描述
標題 object 要求中的標頭
本文 object 具有要求內文內容的物件
狀態碼 int 來自要求的狀態代碼
狀態碼 描述
200 確定
202 已接受
400 錯誤要求
401 未經授權
403 禁止
404 找不到
500 內部伺服器錯誤。 發生未知的錯誤。

下一步