從 Azure Logic Apps 中的工作流程連線或呼叫 REST API 端點

適用於:Azure Logic Apps (使用量 + 標準)

若要從 Azure Logic Apps 中的邏輯應用程式工作流程呼叫 REST API 端點,您可以使用內建的 HTTP + Swagger 作業,透過 Swagger 檔案呼叫任何 REST API 端點。 HTTP + Swagger 觸發程序和動作的運作方式與 HTTP 觸發程序和動作相同,但能夠藉由公開 Swagger 檔案所描述的 API 結構和輸出,在工作流程設計工具中提供更好的體驗。 若要實作輪詢觸發程序,請遵循建立自訂 API 來呼叫邏輯應用程式工作流程的其他 API、服務和系統中所述的輪詢模式。

限制

HTTP + Swagger 內建作業目前僅支援 OpenAPI 2.0,而不是 OpenAPI 3.0。

必要條件

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

  • Swagger 檔案的 URL,描述您想要呼叫的目標 REST API 端點

    一般而言,REST 端點必須符合下列準則,觸發程式或動作才能運作:

    • Swagger 檔案必須裝載於可公開存取的 HTTPS URL 上。

    • Swagger 檔案必須包含定義中每個作業的 operationID 屬性。 如果未包含,連接器只會顯示 Swagger 檔案中的最後一個作業。

    • Swagger 檔案必須已啟用跨原始來源資源共用 (CORS) \(部分機器翻譯\)。

    本指南中的範例使用 Azure AI 臉部服務,其需要 Azure AI 服務資源索引鍵和區域

    注意

    若要參考未託管或不符合安全性和跨原始來源需求的 Swagger 檔案,您可以將 Swagger 檔案上傳到 Azure 儲存體帳戶中的 Blob 容器,並在該儲存體帳戶上啟用 CORS,如此就能參考檔案。

  • 您想要從中呼叫目標端點的使用量或標準邏輯應用程式工作流程。 若要開始使用 HTTP + Swagger 觸發程序,請使用空白工作流程建立邏輯應用程式資源。 若要使用 HTTP + Swagger 動作,請使用您所需的任何觸發程序來啟動工作流程。 此範例會使用 HTTP + Swagger 觸發程序作為第一個作業。

新增 HTTP + Swagger 觸發程序

此內建觸發程序會將 HTTP 要求傳送至描述 REST API 的 Swagger 檔案 URL。 然後觸發程序就會傳回包含該檔案內容的回應。

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

  2. 在設計工具上,遵循這些一般步驟來新增名為 HTTP + SwaggerHTTP 觸發程序

  3. 在 [Swagger 端點] 方塊中,輸入您需要的 Swagger 檔案的 URL,然後選取 [新增動作]

    請務必使用或建立您自己的端點。 僅作為範例使用,這些步驟會採用位於美國西部區域的下列 Azure AI 臉部 API Swagger URL,而且可能無法在特定觸發程序中運作:

    https://westus.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/export?DocumentFormat=Swagger&ApiName=Face%20API%20-%20V1.0

    Screenshot shows Standard workflow designer with trigger named httpswaggeraction. The Swagger Endpoint property is set to a URL value.

  4. 當設計工具顯示 Swagger 檔案所描述的作業時,選取您要使用的作業。

    下列範例會將觸發程序重新命名為臉部 - 偵測,讓觸發程序具有更具描述性的名稱。

    Screenshot shows Standard workflow, Face - Detect trigger, and list with Swagger operations.

  5. 提供觸發程序參數的值,其會根據您想要包含在端點呼叫中的所選作業而不同。 設定您想要觸發程序呼叫端點的頻率週期。

  6. 若要新增其他可用參數,請開啟 [進階參數] 清單,然後選取您需要的參數。

    如需適用於 HTTP + Swagger 的驗證類型詳細資訊,請參閱將驗證新增至輸出呼叫

  7. 使用觸發程序引發時您要執行的動作來繼續建置工作流程。

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

新增 HTTP + Swagger 動作

此內建動作會將 HTTP 要求傳送至描述 REST API 的 Swagger 檔案 URL。 然後動作就會傳回包含該檔案內容的回應。

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

  2. 在設計工具上,遵循這些一般步驟來新增名為 HTTP + SwaggerHTTP 動作

  3. 在 [Swagger 端點] 方塊中,輸入您需要的 Swagger 檔案的 URL,然後選取 [新增動作]

    請務必使用或建立您自己的端點。 僅作為範例使用,這些步驟會採用位於美國西部區域的下列 Azure AI 臉部 API Swagger URL,而且可能無法在特定觸發程序中運作:

    https://westus.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/export?DocumentFormat=Swagger&ApiName=Face%20API%20-%20V1.0

    Screenshot shows Standard workflow designer with trigger named Face - Detect, and action named httpswaggeraction. The Swagger Endpoint property is set to a URL value.

  4. 當設計工具顯示 Swagger 檔案所描述的作業時,選取您要使用的作業。

    下列範例會將動作重新命名為臉部 - 識別,讓動作具有更具描述性的名稱。

    Screenshot shows Standard workflow, Face - Identify action, and list with Swagger operations.

  5. 提供動作參數的值,其會根據您想要包含在端點呼叫中的所選作業而不同。

  6. 若要新增其他可用參數,請開啟 [進階參數] 清單,然後選取您需要的參數。

    如需適用於 HTTP + Swagger 的驗證類型詳細資訊,請參閱將驗證新增至輸出呼叫

  7. 使用您要執行的任何其他動作來繼續建置您的工作流程。

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

在 Azure 儲存體中裝載 Swagger

您仍可參考未託管或不符合安全性及跨原始來源需求的 Swagger 檔案。 將 Swagger 檔案上傳至 Azure 儲存體帳戶中的 Blob 容器,並在該儲存體帳戶上啟用 CORS。 若要在 Azure 儲存體中建立、設定和儲存 Swagger 檔案,請遵循下列步驟:

  1. 建立 Azure 儲存體帳戶。

  2. 現在針對 Blob 啟用 CORS。 在您的儲存體帳戶功能表上,選取 [CORS]。 在 [Blob 服務] 索引標籤上,指定這些值,然後選取 [儲存]

    屬性
    允許的原始來源 *
    允許的方法 GETHEADPUT
    允許的標頭 *
    公開的標頭 *
    存留期上限 (秒) 200

    儘管此範例會使用 Azure 入口網站,但您還是可以使用 Azure 儲存體總管之類的工具,或使用此範例 PowerShell 指令碼來自動設定此設定。

  3. 建立 Blob 容器。 在容器的 [概觀] 窗格中,選取 [變更存取層級]。 從 [公用存取層級] 清單中,選取 [Blob (僅限 blob 的匿名讀取權限)],然後選取 [確定]

  4. 透過 Azure 入口網站Azure 儲存體總管將 Swagger 檔案上傳至 Blob 容器

  5. 若要參考 Blob 容器中的檔案,請從 Azure 儲存體總管中取得遵循此格式的 HTTPS URL (區分大小寫):

    https://<storage-account-name>.blob.core.windows.net/<blob-container-name>/<complete-swagger-file-name>?<query-parameters>

連接器技術參考

本節針對來自 HTTP + Swagger 觸發程序和動作的輸出提供詳細資訊。

輸出

HTTP + Swagger 呼叫會傳回下列資訊:

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

下一步