共用方式為


使用 Visual Studio Code 在單一租用戶 Azure Logic Apps 中建立標準邏輯應用程式工作流程

適用於:Azure Logic Apps (標準)

本操作指南說明如何使用 Visual Studio Code 搭配 Azure Logic Apps (標準) 延伸模組來建立在單一租用戶 Azure Logic Apps 中執行的範例整合工作流程。 建立此工作流程之前,您將建立標準邏輯應用程式資源,以提供下列功能:

  • 邏輯應用程式可以包含多個具狀態和無狀態工作流程

  • 相同邏輯應用程式和租用戶中的工作流程會在與 Azure Logic Apps 執行階段相同的程序中執行,因此會共用相同的資源並提供更佳的效能。

  • 您可以使用 Visual Studio Code 開發環境在本機建立、執行及測試工作流程。

    準備好時,您可以將邏輯應用程式部署至 Azure,讓工作流程可以在單一租用戶 Azure Logic Apps 環境中執行,或在 App Service 環境 v3 中執行 (Windows 型 App Service 方案)。 由於 Azure Logic Apps 容器化執行階段,您也可以在 Kubernetes 可執行的任何位置部署及執行工作流程,包括 Azure、Azure Kubernetes Service、內部部署,或其他雲端提供者。

    注意

    將邏輯應用程式部署至 Kubernetes 叢集目前為公開預覽狀態。

    如需更多關於單一租用戶 Azure Logic Apps 的資訊,請檢閱單一租用戶與多租用戶比較和整合服務環境

雖然範例工作流程是以雲端為基礎,而且只有兩個步驟,但您可以從數百個作業建立工作流程,以連接跨雲端、內部部署和混合式環境的各種應用程式、資料、服務和系統。 範例工作流程會從內建的要求觸發程序開始,並遵循 Office 365 Outlook 動作。 觸發程序會建立工作流程的可呼叫端點,並等候來自任何呼叫者的輸入 HTTPS 要求。 當觸發程序收到要求並引發時,下一個動作會藉由將電子郵件傳送至指定的電子郵件地址以及來自觸發程序的所選輸出來執行。

提示

如果您沒有 Office 365 帳戶,您可使用任何其他可用的動作,從電子郵件帳戶 (例如 Outlook.com) 傳送訊息。

若要改為使用 Azure 入口網站來建立此範例工作流程,請遵循使用單一租用戶 Azure Logic Apps 和 Azure 入口網站建立整合工作流程中的步驟。 這兩個選項都提供在同種環境中開發、執行和部署邏輯應用程式工作流程的功能。 不過,使用 Visual Studio Code,您可以在開發環境中本機開發、測試及執行工作流程。

顯示 Visual Studio Code、邏輯應用程式專案和工作流程的螢幕快照。

隨著您進行,您將完成這些高階工作:

  • 為您的邏輯應用程式建立專案和空白的具狀態工作流程
  • 新增觸發程序和動作。
  • 在本機執行、測試、偵錯及檢閱執行歷程記錄。
  • 尋找防火牆存取的網域名稱詳細資料。
  • 部署至 Azure,其包括選擇性地啟用 Application Insights。
  • 在 Visual Studio Code 和 Azure 入口網站中管理已部署的邏輯應用程式。
  • 啟用無狀態工作流程的執行歷程記錄。
  • 在部署後啟用或開啟 Application Insights。

必要條件

存取和連線能力

  • 如果您打算在本機建置標準邏輯應用程式專案,並且只使用在 Azure Logic Apps 工作階段上原生執行的內建連接器來執行工作流程,則不需要下列需求。 不過,請確定您具有下列連線能力和 Azure 帳戶認證,以將專案從 Visual Studio Code 發佈或部署至 Azure、使用在全域 Azure 中執行的受控連接器,或存取已在 Azure 中部署的標準邏輯應用程式資源和工作流程:

    • 存取網際網路,以便下載需求、從 Visual Studio Code 連線至 Azure 帳戶,以及從 Visual Studio Code 發佈至 Azure。

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

  • 若要在本文中建立相同的範例工作流程,您需要可使用 Microsoft 公司或學校帳戶登入的 Office 365 Outlook 電子郵件帳戶。

    如果您選擇不同的電子郵件連接器,例如 Outlook.com,您仍可遵循此範例,且一般整體步驟相同。 不過,您的選項在某些方面可能有所不同。 例如,如果您使用 Outlook.com 連接器,請改用您的個人 Microsoft 帳戶進行登入。

工具

  1. 免費下載並安裝 Visual Studio Code

  2. 下載並安裝適用於 Visual Studio Code 的 Azure 帳戶延伸模組,讓您可以在 Visual Studio Code 中的所有 Azure 延伸模組之間,取得 Azure 登入和訂用帳戶篩選的單一共同體驗。 本操作指南包含使用此體驗的步驟。

  3. 使用任一方法,為您的特定作業系統下載並安裝下列 Visual Studio Code 相依性:

    自動安裝所有相依性

    2.81.5 版開始,適用於 Visual Studio Code 的 Azure Logic Apps (標準) 延伸模組包含相依性安裝程式,會自動在新的二進位資料夾中安裝所有必要的相依性,並且讓任何現有的相依性保持不變。 如需詳細資訊,請參閱輕鬆開始使用適用於 Visual StudioCode 的 Azure Logic Apps (標準) 延伸模組

    此延伸模組包含下列相依性:

    Dependency 描述
    C# for Visual Studio Code 啟用 F5 功能以執行您的工作流程。
    適用於 Visual Studio Code 的 Azurite 提供本機資料存放區和模擬器來與 Visual Studio Code 搭配使用,讓您可以處理邏輯應用程式專案,並在本機開發環境中執行工作流程。 如果您不想讓 Azurite 自動啟動,您可以停用此選項:

    1.在 [檔案] 功能表上,選取 [喜好設定]>[設定]

    2.在 [使用者] 索引標籤上,選取 [延伸模組]>[Azure Logic Apps (標準)]

    3.尋找名為 Azure Logic Apps 標準:自動啟動 Azurite 的設定,然後清除選取的核取方塊。
    .NET SDK 6.x.x 包含 .NET Runtime 6.x.x,這是 Azure Logic Apps (標準) 工作階段的必要條件。
    Azure Functions Core Tools - 4.x 版 根據您的作業系統 (WindowsmacOSLinux) 安裝版本。

    這些工具包含支援 Azure Functions 執行階段的相同執行階段版本,其為 Azure Logic Apps (標準) 延伸模組在 Visual Studio Code 中所使用。
    除非已安裝較新版本,否則會安裝 Node.js 16.x.x 版 必須啟用執行 JavaScript 的內嵌程式碼作業動作

    安裝程式不會執行下列工作:

    • 檢查必要的相依性是否已經存在。
    • 只安裝遺漏的相依性。
    • 更新舊版的現有相依性。
    1. 從 2.81.5 版開始,下載並安裝適用於 Visual Studio Code 的 Azure Logic Apps (標準) 延伸模組)

    2. 在 Visual Studio Code 中,於 [活動] 列上,選取 [延伸模組]。 (鍵盤:按 Ctrl+Shift+X)

    3. 在 [延伸模組] 窗格中,開啟省略符號 (...) 功能表,然後選取 [從 VSIX 安裝]

    4. 尋找並選取下載的 VSIX 檔案。

      安裝程式完成之後,延伸模組會自動啟動並執行驗證並安裝相依性二進位檔命令。 若要檢視進度記錄,請開啟 [輸出] 視窗。

    5. 出現下列提示時,請選取 [是 (建議)] 以確認您想要自動安裝所需的相依性:

      顯示提示自動安裝相依性的螢幕快照。

    6. 如有必要,請重新載入 Visual Studio Code。

    7. 確認相依性正確出現在下列資料夾中:

      C:\Users\<your-user-name>\.azurelogicapps\dependencies\<dependency-name>

    8. 確認 Visual Studio Code 中的下列延伸模組設定:

      1. 在 [檔案] 功能表上,選取 [喜好設定]>[設定]

      2. 在 [使用者] 索引標籤上,選取 [延伸模組]>[Azure Logic Apps (標準)]

      3. 檢閱下列設定:

        延伸模組設定
        相依性路徑 C:\Users\<your-user-name>\.azurelogicapps\dependencies
        相依性逾時 60 秒鐘
        Dotnet 二進位路徑 C:\Users\<your-user-name>\.azurelogicapps\dependencies\DotNetSDK\dotnet.exe
        Func Core 工具二進位路徑 C:\Users\<your-user-name>\.azurelogicapps\dependencies\FuncCoreTools\func
        Node JS 二進位路徑 C:\Users\<your-user-name>\.azurelogicapps\dependencies\NodeJs\node
        自動啟動 Azurite 已啟用
        自動啟動設計階段 已啟用
    9. 如果您有現有的邏輯應用程式專案,其中包含儲存在 .vscode/tasks.json 檔案中的自訂定義工作,請務必先將 tasks.json 檔案儲存到別處,再開啟專案。

      當您開啟專案時,系統會提示您更新 tasks.json 檔案以使用必要的相依性。 如果您選擇繼續,則延伸模組會覆寫 tasks.json 檔案。

    10. 當您開啟邏輯應用程式專案時,會出現下列通知:

      通知 動作
      一律在啟動時啟動背景設計階段流程? 若要更快速地開啟工作流程設計工具,請選取 [是 (建議)]
      設定 Azurite 在專案啟動時自動啟動? 若要讓 Azurite 儲存體在專案開啟時自動啟動,請選取 [啟用自動啟動]。 在 Visual Studio Code 頂端,在出現的命令視窗中,按 Enter 以接受預設路徑:

      C\Users\<your-user-name>\.azurelogicapps\.azurite

    預覽的已知問題

    • 如果您選擇在沒有任何 .NET Core SDK 版本的電腦上自動安裝所有相依性,則會出現下列訊息:

      「找不到 .NET Core SDK:執行 dotnet 時發生錯誤 -- 資訊:錯誤:命令失敗:dotnet --資訊「dotnet」未辨識為內部或外部命令、可執行程式或批次檔。 「dotnet」未辨識為內部或外部命令、可執行程式或批次檔。 . 將不會啟用 .NET Core 偵錯。 請確定已安裝 .NET Core SDK,且位於路徑上。」

      您收到此訊息是因為 .NET Core 架構在延伸模組啟動時仍在安裝。 您可以放心地選擇停用此訊息。

      如果您在開啟現有的邏輯應用程式專案或啟動函式主機啟動的偵錯工作 (tasks.json) 時遇到問題,並出現此訊息時,請遵循下列步驟來解決問題:

      1. 將 dotnet 二進位路徑新增至您的環境 PATH 變數。

        1. 在 Windows 工作列的搜尋方塊中,輸入環境變數,然後選取 [編輯系統環境變數]

        2. 在 [系統屬性] 方塊中的 [進階] 索引標籤上,選取 [環境變數]

        3. 在 [環境變數] 方塊中,從 [<your-user-name> 的使用者變數] 清單中,選取 [PATH],然後選取 [編輯]

        4. 如果清單中沒有出現下列值,請選取 [新增] 以新增下列值:

          C:\Users\<your-user-name>\.azurelogicapps\dependencies\DotNetSDK

        5. 完成時,選取確定

      2. 關閉所有 Visual Studio Code 視窗,然後重新開啟您的專案。

    • 如果您在安裝和驗證二進位相依性時遇到問題,例如:

      • Linux 權限問題
      • 您收到下列錯誤:<檔案或路徑>不存在
      • 驗證在<相依性名稱>卡住。

      請遵循下列步驟,再次執行驗證並安裝二進位相依性命令:

      1. 從 [檢視] 功能表中,選取 [命令選擇區]

      2. 當命令視窗出現時,輸入並執行驗證並安裝二進位相依性命令。

    • 如果您並未安裝 .NET Core 7 或更新版本,且開啟包含 Azure Functions 專案的 Azure Logic Apps 工作區,則會收到下列訊息:

      載入專案 [function-name].csproj 時發生問題。 如需詳細資料,請參閱記錄。

      這個遺漏的元件不會影響 Azure Functions 專案,因此您可以放心地忽略此訊息。

    個別安裝每個相依性

    Dependency 描述
    .NET SDK 6.x.x 包含 .NET Runtime 6.x.x,這是 Azure Logic Apps (標準) 工作階段的必要條件。
    Azure Functions Core Tools - 4.x 版 - Windows:使用 Microsoft Installer (MSI) 版本,也就是 func-cli-X.X.XXXX-x*.msi
    - macOS
    - Linux

    這些工具包含支援 Azure Functions 執行階段的相同執行階段版本,其為 Azure Logic Apps (標準) 延伸模組在 Visual Studio Code 中所使用。

    如果您有早於這些版本的安裝,請先解除安裝該版本,或確定 PATH 環境變數指向您下載並安裝的版本。
    除非已安裝較新版本,否則會安裝 Node.js 16.x.x 版 必須啟用執行 JavaScript 的內嵌程式碼作業動作

    注意:若為 Windows,請下載 MSI 版本。 如果您改用 ZIP 版本,則必須手動使用作業系統的 PATH 環境變數來讓 Node.js 可供使用。
  4. 如果您已安裝自動安裝所有相依性 (預覽) 的 Azure Logic Apps (標準) 延伸模組版本,請跳過此步驟。 否則,請下載並安裝適用於 Visual Studio Code 的 Azure Logic Apps (標準) 延伸模組

    1. 在 Visual Studio Code 中,於左邊的工具列上,選取 [延伸模組]

    2. 在 [延伸模組] 搜尋方塊中,輸入 Azure Logic Apps 標準。 從結果清單中,選取 [Azure Logic Apps (標準)]> [安裝]

      安裝完成之後,延伸模組會出現在 [延伸模組: 已安裝] 清單中。

      顯示已安裝 Azure Logic Apps(Standard) 擴充功能的 Visual Studio Code 螢幕快照。

      提示

      如果延伸模組未出現在已安裝的清單中,請嘗試重新啟動 Visual Studio Code。

    目前,您可以同時安裝使用量 (多租用戶) 和標準 (單一租用戶) 延伸模組。 開發體驗會以某種方式彼此不同,但您的 Azure 訂用帳戶可以同時包含標準和取用邏輯應用程式類型。 在 Visual Studio Code 中,Azure 視窗會顯示 Azure 訂用帳戶中所有 Azure 已部署和裝載的邏輯應用程式,但會以下列方式組織您的應用程式:

    • Logic Apps (使用量) 區段:訂用帳戶中的所有使用量邏輯應用程式。

    • 資源區段:訂用帳戶中的所有標準邏輯應用程式。 先前,這些邏輯應用程式會出現在 [Logic Apps (標準)] 區段中,該區段現在已移至 [資源] 區段。

  5. 若要在本機執行 Webhook 型觸發程序和動作,例如 Visual Studio Code 中的內建 HTTP Webhook 觸發程序,您必須設定回撥 URL 的轉送

  6. 若要測試本文中的範例工作流程,您需要一個工具,將呼叫傳送至要求觸發程序所建立的端點。 如果您沒有這類工具,您可以下載、安裝及使用 Postman 應用程式。

  7. 如果您利用支援使用 Application Insights 的設定來建立邏輯應用程式資源,則可選擇性地啟用邏輯應用程式資源的診斷記錄和追蹤。 您可以在建立邏輯應用程式時或在部署之後執行此動作。 您需要有 Application Insights 執行個體,但可以在建立邏輯應用程式時或在部署之後,預先建立此資源。

設定 Visual Studio Code

  1. 若要確定已正確安裝所有延伸模組,請重新載入或重新啟動 Visual Studio Code。

  2. 確認 Visual Studio Code 會自動尋找並安裝延伸模組更新,讓所有延伸模組都能取得最新的更新。 否則,您必須手動解除安裝過期的版本,並安裝最新版本。

    1. 在 [檔案] 功能表上,移至 [喜好設定]> [設定]

    2. 在 [使用者] 索引標籤上,移至 [功能]> [延伸模組]

    3. 確認已選取 [自動檢查更新],且 [自動更新] 已設定為 [所有延伸模組]

  3. 確認 Azure Logic Apps (標準) 延伸模組的 [Azure Logic Apps 標準:專案執行階段] 設定已設定為版本 ~4

    注意

    需要此版本才能使用內嵌程式碼作業動作

    1. 在 [檔案] 功能表上,移至 [喜好設定]> [設定]

    2. 在 [使用者] 索引標籤上,移至 > [延伸模組]> [Azure Logic Apps (標準)]

      例如,您可以在這裡找到 [Azure Logic Apps 標準:Project 執行階段] 設定,或使用搜尋方塊來尋找其他設定:

      此螢幕快照顯示適用於 Azure Logic Apps (Standard) 擴充功能的 Visual Studio Code 設定。

連線至您的 Azure 帳戶

  1. 在 Visual Studio Code 活動列上,選取 Azure 圖示。

    此螢幕快照顯示 Visual Studio Code 活動列和選取的 Azure 圖示。

  2. 在 Azure 視窗的 [資源] 下,選取 [登入 Azure]。 當 [Visual Studio Code 驗證] 頁面出現時,請使用您的 Azure 帳戶登入。

    此螢幕快照顯示 Azure 視窗和 Azure 登入的選取連結。

    登入之後,Azure 視窗會顯示與您 Azure 帳戶相關聯的 Azure 訂用帳戶。 如果預期的訂用帳戶未出現,或您希望窗格只顯示特定訂用帳戶,請遵循下列步驟:

    1. 在訂用帳戶清單中,將指標移至第一個訂用帳戶旁,直到 [選取訂用帳戶] 按鈕 (篩選圖示) 出現為止。 選取篩選圖示。

      顯示 Azure 視窗的螢幕快照,其中包含訂用帳戶和選取的篩選圖示。

      或者,在 Visual Studio Code 狀態列中,選取您的 Azure 帳戶。

    2. 當另一個訂用帳戶清單出現時,請選取您想要的訂用帳戶,然後確定您選取 [確定]

建立本機檔案

建立邏輯應用程式之前,請先建立本機專案,以便從 Visual Studio Code 管理、執行和部署邏輯應用程式。 基礎專案類似於 Azure Functions 專案,也稱為函式應用程式專案。 不過,這些專案類型彼此分開,因此邏輯應用程式和函式應用程式不能存在於相同專案中。

  1. 在您的電腦上,建立空白的本機資料夾,以用於您稍後將在 Visual Studio Code 中建立的專案。

  2. 在 Visual Studio Code 中,關閉所有開啟的資料夾。

  3. 在 [Azure] 視窗中, 從 [Azure Logic Apps] 功能表的 [工作區] 區段工具列上,選取 [建立新專案]

    顯示已選取 [建立新專案] 的 Azure 視窗、工作區工具列和 Azure Logic Apps 功能表的螢幕快照。

  4. 如果 Windows Defender 防火牆提示您授與 Code.exe (即 Visual Studio Code) 和 func.exe (即 Azure Functions Core Tools) 的網路存取權,請選取 [私人網路,例如家用或工作場所網路]> [允許存取]

  5. 瀏覽至您建立專案資料夾的位置,選取該資料夾並繼續。

    顯示 [選取資料夾] 方塊和新專案資料夾的螢幕快照,並已選取 [選取] 按鈕。

  6. 從出現的範本清單中,選取 [具狀態工作流程] 或 [無狀態工作流程]。 此範例會選取 [具狀態工作流程]

    顯示已選取具狀態工作流程的工作流程範本清單螢幕快照。

  7. 為您的工作流程提供名稱,然後按 Enter。 此範例使用 Stateful-Workflow 作為名稱。

    顯示 [建立新的具狀態工作流程(3/4)] 方塊和工作流程名稱[具狀態工作流程] 的螢幕快照。

    注意

    您可能會收到名為 azureLogicAppsStandard.createNewProject 的錯誤,以及錯誤訊息因為 azureFunctions.suppressProject 不是已註冊的設定,無法寫入工作區設定。 如果您這麼做,請嘗試直接從 Visual Studio Marketplace 或從 Visual Studio Code 內部安裝適用於 Visual Studio Code 的 Azure Functions 延伸模組

  8. 如果 Visual Studio Code 提示您在目前的 Visual Studio Code 或新的 Visual Studio Code 視窗中開啟專案,請選取 [在目前視窗中開啟]。 否則,請選取 [在新視窗中開啟]

    Visual Studio Code 會完成建立您的專案。

  9. 從 Visual Studio 工具列,開啟 [總管] 窗格 (如果尚未開啟)。

    [總管] 窗格會顯示您的專案,其現在包含自動產生的專案檔案。 例如,專案有一個資料夾,其顯示工作流程的名稱。 在此資料夾內,workflow.json 檔案包含工作流程的基礎 JSON 定義。

    顯示 [總管] 窗格的螢幕快照,其中包含專案資料夾、工作流程資料夾和workflow.json檔案。

    在 Visual Studio Code 中,邏輯應用程式專案具有下列其中一種類型:

    • 延伸模組套件組合型 (Node.js) 為預設類型
    • NuGet 套件型 (.NET) 則能從預設類型轉換

    根據這些類型,專案所包含的資料夾和檔案會稍有不同。 NuGet 型專案包含 .bin 資料夾 (其中包含套件和其他程式庫檔)。 套件組合型專案不包含 .bin 資料夾和其他檔案。 在某些案例下,需要以 NuGet 型專案才能執行應用程式,例如,當您想要開發和執行自訂內建作業的情況。 如需將專案轉換為使用 NuGet 的詳細資訊,請參閱啟用內建連接器製作

    針對預設套件組合型專案,您的專案具有類似下列範例的資料夾和檔案結構:

    MyBundleBasedLogicAppProjectName
    | .vscode
    | Artifacts
      || Maps 
         ||| MapName1
         ||| ...
      || Schemas
         ||| SchemaName1
         ||| ...
    | WorkflowName1
      || workflow.json
      || ...
    | WorkflowName2
      || workflow.json
      || ...
    | workflow-designtime
    | .funcignore
    | connections.json
    | host.json
    | local.settings.json
    

    在專案的根層級,您可以找到下列檔案和資料夾以及其他項目:

    名稱 資料夾或檔案 描述
    .vscode Folder 包含與 Visual Studio Code 相關的設定檔案,例如 extensions.jsonlaunch.jsonsettings.jsontasks.json 檔案。
    成品 Folder 包含您在支援企業對企業 (B2B) 案例的工作流程中,所定義和使用的整合帳戶成品。 例如,範例結構包含 XML 轉換和驗證作業的對應和結構描述。
    <WorkflowName> Folder 針對每個工作流程,<WorkflowName> 資料夾包含 workflow.json 檔案,其中包含該工作流程的基礎 JSON 定義。
    workflow-designtime Folder 包含與開發環境相關的設定檔案。
    .funcignore 檔案 包含與已安裝 Azure Functions Core Tools 相關的資訊。
    connections.json 檔案 包含工作流程所使用的任何受控連線和 Azure 函式的中繼資料、端點和金鑰。

    重要事項:若要在每個環境中使用不同的連線和函數,請確定您將 connections.json 檔案參數化,並更新端點。
    host.json 檔案 包含執行階段特定的組態設定和值,例如,單一租用戶 Azure Logic Apps 平台、邏輯應用程式、工作流程、觸發程序和動作的預設限制。 在邏輯應用程式專案的根層級上,host.json 中繼資料檔案會包含相同邏輯應用程式中所有工作流程在本機或 Azure 中執行時所使用的組態設定和預設值。

    注意:當您建立邏輯應用程式時,Visual Studio Code 會在您的儲存體容器中建立備份 host.snapshot.*.json 檔案。 當您刪除邏輯應用程式時,並不會刪除此備份檔案。 當您建立另一個具有相同名稱的邏輯應用程式時,則會建立另一個快照集檔案。 在相同邏輯應用程式中,最多只能有 10 個快照集。 如果超出此限制,您會收到下列錯誤:

    Microsoft.Azure.WebJobs.Script.WebHost: Repository has more than 10 non-decryptable secrets backups (host))

    若要解決此錯誤,請從儲存體容器中刪除額外的快照集檔案。
    local.settings.json 檔案 包含應用程式設定、連接字串,以及工作流程在本機執行時所使用的其他設定。 換句話說,只有在您於本機開發環境中執行專案時,才會套用這些設定和值。 在部署至 Azure 期間,檔案和設定將會被忽略,也不會包含在您的部署中。

    此檔案會將設定和值儲存為本機環境變數,而本機開發工具會將其作為 appSettings 值使用。 您可以使用應用程式設定參數,在執行階段和部署時間呼叫和參考這些環境變數。

    重要事項local.settings.json 檔案可能包含密碼,因此也請確定從專案原始檔控制中排除此檔案。

將您的專案轉換為 NuGet 套件型 (.NET)

根據預設,Visual Studio Code 會建立延伸模組套件組合型 (Node.js) 的邏輯應用程式專案,而不是 NuGet 套件型 (.NET)。 例如,如果您需要 NuGet 套件型邏輯應用程式專案 (.NET),若要啟用內建連接器製作,您必須將專案從延伸模組套件組合型 (Node.js) 轉換為 NuGet 套件型 (.NET)。

重要

此動作是您無法復原的單向作業。

  1. 在 [總管] 窗格中,在專案的根目錄中,將滑鼠指標移至所有其他檔案和資料夾下方的任何空白區域上,開啟捷徑功能表,然後選取 [轉換為 NuGet 型邏輯應用程式專案]

    顯示 [總管] 窗格的螢幕快照,其中包含從項目視窗中空白區域開啟的專案快捷方式功能表。

  2. 出現提示時,請確認專案轉換。

啟用內建連接器撰寫

您可以使用單一租用戶 Azure Logic Apps 擴充性架構,針對您需要的任何服務,建立您自己的內建連接器。 類似於內建連接器,例如 Azure 服務匯流排和SQL Server,這些連接器提供較高的輸送量、低延遲、本機連線能力,並可在與單一租用戶 Azure Logic Apps 執行階段相同的程序中原生執行。

目前只有 Visual Studio Code 中提供製作功能,但預設未啟用。 若要建立這些連接器,請遵循下列步驟:

  1. 如果您尚未將專案從延伸模組套件組合型 (Node.js) 轉換為 NuGet 套件型 (.NET)

  2. 請檢閱並遵循文章中的步驟:Azure Logic Apps 隨處執行 - 內建連接器擴充性

將自訂成品新增至您的專案

在邏輯應用程式工作流程中,某些連接器相依於成品,例如對應、結構描述或組件。 在 Visual Studio Code 中,您可以將這些成品上傳至邏輯應用程式專案,類似於在 Azure 入口網站中透過 [成品] 下的邏輯應用程式資源功能表上傳這些成品的方法,例如:

此螢幕快照顯示已醒目提示 [成品] 區段的 [Azure 入口網站] 和 [標準邏輯應用程式資源] 功能表。

將對應新增至您的專案

若要將對應新增至您的專案,請在專案階層中展開 [成品]>[對應],這是您可以放置對應的資料夾。

顯示 Visual Studio Code 專案階層的螢幕快照,其中包含已展開 [成品] 和 [地圖] 資料夾。

將結構描述新增至您的專案

若要將結構描述新增至專案,請在專案階層中展開 [成品]>[結構描述],這是您可以放置結構描述的資料夾。

此螢幕快照顯示已展開 [成品] 和 [架構] 資料夾的 Visual Studio Code 項目階層。

將組件新增至您的專案

標準邏輯應用程式可以使用或參考特定種類的組件,您可以在 Visual Studio Code 中上傳至專案。 不過,您必須將其新增至專案中的特定資料夾。 下表提供每個組件類型的詳細資訊,以及放置於您專案中的確切位置。

組件類型 描述
用戶端/SDK 組件 (.NET Framework) 此組件類型提供用戶端的儲存體與部署,以及適用於 .NET Framework 的自訂 SDK。 例如,SAP 內建連接器會使用這些組件來載入 SAP NCo 不可轉散發 DLL 檔案。

請確定您將這些組件新增至下列資料夾:\lib\builtinOperationSdks\net472
用戶端/SDK 組件 (JAVA) 此組件類型會提供適用於 JAVA 的自訂 SDK 儲存體和部署。 例如,JDBC 內建連接器會使用這些 JAR 檔案來尋找自訂關聯式資料庫 (RDB) 的 JDBC 驅動程式。

請務必將這些組件新增至下列資料夾:\lib\builtinOperationSdks\JAR
自訂組件 (.NET Framework) 此組件類型提供自訂 DLL 的儲存體和部署。 例如,轉換 XML 作業會針對 XML 轉換期間所需的自訂轉換函式使用這些組件。

請務必將這些組件新增至下列資料夾:\lib\custom\net472

下圖顯示將每個組件類型放在專案中的位置:

此螢幕快照顯示 Visual Studio Code、邏輯應用程式專案,以及上傳元件的位置。

如需在 Azure 入口網站中將組件上傳至邏輯應用程式資源的詳細資訊,請參閱新增參考的組件

移轉 NuGet 型專案以使用「lib\*」組件

重要

只有 NuGet 型邏輯應用程式專案才需要這項工作。

如果您在標準邏輯應用程式工作流程無法使用組件支援時建立邏輯應用程式專案,您可以將下列幾行新增至您的 <project-name>.csproj 檔案,以處理使用組件的專案:

  <ItemGroup>
    <LibDirectory Include="$(MSBuildProjectDirectory)\lib\**\*"/>
  </ItemGroup>
  <Target Name="CopyDynamicLibraries" AfterTargets="_GenerateFunctionsExtensionsMetadataPostPublish">
    <Copy SourceFiles="@(LibDirectory)" DestinationFiles="@(LibDirectory->'$(MSBuildProjectDirectory)\$(PublishUrl)\lib\%(RecursiveDir)%(Filename)%(Extension)')"/>
  </Target>

重要

針對在 Linux 或 MacOS 上執行的專案,請務必更新目錄分隔符號。 例如,請檢閱下圖,其中顯示先前新增至 <project-name>.csproj 檔案的程式碼。

此螢幕快照顯示已移轉的元件,並在 CSPROJ 檔案中新增程式代碼。

在設計工具中開啟工作流程定義檔案

  1. 展開工作流程的專案資料夾,在此範例中名為 Stateful-Workflow,然後開啟 workflow.json 檔案。

  2. 開啟 workflow.json 檔案的捷徑功能表,然後選取 [開啟設計工具]

    顯示 [總管] 窗格、workflow.json檔案快捷方式功能表,以及已選取 [開啟設計工具] 的螢幕快照。

  3. 在 [在 Azure 中啟用連接器] 清單開啟之後,選取 [使用來自 Azure 的連接器],此連接器會套用至所有受控或「共用」連接器,這些連接器會裝載並執行於 Azure 中,而不是直接使用 Azure Logic Apps 工作階段執行的內建、原生或「應用程式內」連接器。

    此螢幕快照顯示 [總管] 窗格、開啟名為 [在 Azure 中啟用連接器] 的清單,以及選取 [從 Azure 使用連接器] 選項。

    注意

    無狀態工作流程目前僅支援來自受控連接器動作,而不是觸發程序。 雖然您可以選擇在 Azure 中為無狀態工作流程啟用連接器,但設計工具不會顯示任何受控連接器觸發程序供您選取。

  4. 在 [選取訂用帳戶] 清單開啟之後,選取要用於邏輯應用程式專案的 Azure 訂用帳戶。

    顯示 [總管] 窗格的螢幕快照,其中包含名為 [選取訂用帳戶] 和所選訂用帳戶的清單。

  5. 在資源群組清單開啟之後,選取 [建立新的資源群組]

    顯示 [總管] 窗格的螢幕快照,其中包含資源群組清單和選取的選項,以建立新的資源群組。

  6. 提供資源群組的名稱,然後按 Enter。 此範例會使用 Fabrikam-Workflows-RG

    顯示 [總管] 窗格和資源組名方塊的螢幕快照。

  7. 從位置清單中,選取建立資源群組和資源時要使用的 Azure 區域。 此範例使用美國中西部

    顯示 [總管] 窗格的螢幕快照,並已選取 [位置清單] 和 [美國中西部]。

    執行此步驟之後,Visual Studio Code 會開啟工作流程設計工具。

    注意

    Visual Studio Code 啟動工作流程設計階段 API 時,您可能會收到一則訊息,指出啟動可能需要幾秒鐘的時間。 您可以忽略此訊息,或選取 [確定]

    如果設計工具未開啟,請檢閱疑難排解小節:設計工具無法開啟

    在設計工具出現之後,[新增觸發程序] 提示會出現在設計工具上。

  8. 在設計工具上,選取 [新增觸發程序],這會開啟[新增觸發程式] 窗格和資源庫,其中顯示具有觸發程序的所有連接器可供您選取。

    此螢幕快照顯示工作流程設計工具、名為 [新增觸發程式] 的選取提示,以及具有觸發程式之連接器的資源庫。

  9. 接下來,為您的工作流程新增觸發程序和動作

新增觸發程序和動作

在設計工具中開啟空白工作流程之後,[新增觸發程序] 提示會出現在設計工具上。 您現在可以藉由新增觸發程序和動作來開始建立您的工作流程。

重要

若要在本機執行使用 Webhook 型觸發程序或動作的工作流程,例如內建 HTTP Webhook 觸發程序或動作,您必須為 Webhook 的回撥 URL 設定轉送來啟用此功能。

此範例中的工作流程會使用下列觸發程序和動作:

新增「要求」觸發程序

  1. 在工作流程設計工具的 [新增觸發程序] 窗格中,開啟 [工作階段] 清單,然後選取 [應用程式內],以便您僅檢視可用的內建連接器觸發程序。

  2. 使用搜尋方塊尋找名為 [收到 HTTP 要求時] 的要求觸發程序,並將該觸發程序新增至您的工作流程。 如需詳細資訊,請參閱使用觸發程序和動作建置工作流程

    此螢幕快照顯示工作流程設計工具、[新增觸發程式] 窗格,以及名為 [收到 HTTP 要求時] 選取的觸發程式。

    當觸發程序出現在設計工具上時,觸發程序的資訊窗格隨即開啟,並顯示觸發程序的參數、設定和其他相關工作。

    此螢幕快照顯示名為 [收到 HTTP 要求時] 觸發程式的資訊窗格。

    提示

    如果資訊資料窗格未出現,請確定已在設計工具上選取觸發程序。

  3. 儲存您的工作流程您 在設計師工具列上選取儲存

如果您需要從設計工具刪除項目,請遵循下列步驟以從設計工具刪除項目

新增 Office 365 Outlook 動作

  1. 在設計工具的 [要求] 觸發程序之下,選取加號 (+) > [新增動作]

  2. 在開啟的 [新增動作] 窗格中,從 [工作階段] 清單中選取 [共用],以便您僅檢視可用的受控連接器動作。

  3. 使用搜尋方塊尋找名為 [傳送電子郵件 (V2)] 的 Office 365 Outlook 受控連接器動作,並將該動作新增至您的工作流程。 如需詳細資訊,請參閱使用觸發程序和動作建置工作流程

    此螢幕快照顯示工作流程設計工具與 [新增動作] 窗格,其中包含名為 [傳送電子郵件] 的已選取 Office 365 Outlook 動作。

  4. 當動作的驗證窗格開啟時,選取 [登入] 以建立電子郵件帳戶的連線。

    此螢幕快照顯示名為 [傳送電子郵件 ][V2] 且已選取登入按鈕的動作。

  5. 遵循後續的提示來選取您的帳戶、允許存取,並允許回到 Visual Studio Code。

    注意

    如果在完成提示之前經過太多時間,驗證程序就會逾時並失敗。 在此情況下,請回到設計工具,然後重試登入以建立連線。

    1. 出現 Microsoft 提示時,請選取 Office 365 Outlook 的使用者帳戶,然後選取 [允許存取]

    2. 當 Azure Logic Apps 提示開啟 Visual Studio Code 連結時,請選取 [開啟]

      顯示提示開啟 Visual Studio Code 連結的螢幕快照。

    3. 當 Visual Studio Code 提示開啟 Microsoft Azure Tools 時,請選取 [開啟]

      顯示提示開啟 Microsoft Azure 工具的螢幕快照。

    提示

    若要跳過這類未來的提示,請在相關聯的提示出現時選取下列選項:

    • 開啟 Visual Studio Code 連結的權限:選取 [一律允許 logic-apis-westcentralus.consent.azure-apim.net 在相關聯的應用程式中開啟此類型連結]。 此網域會根據您為邏輯應用程式資源選取的 Azure 區域進行變更。

    • 開啟 Microsoft Azure Tools 的權限:選取 [不要再要求此延伸模組]

    在 Visual Studio Code 建立連線之後,某些連接器會顯示訊息:連線僅在 {n} 天內有效。 此時間限制僅適用於您在 Visual Studio Code 中撰寫您的邏輯應用程式工作流程時的持續時間。 部署之後,此限制即不再適用,因為您的工作流程可以使用其自動啟用的系統指派受控識別,在執行階段進行驗證。 此受控識別與您建立連線時所使用的驗證認證或連接字串不同。 如果您停用此系統指派的受控識別,連線將無法在執行階段運作。

  6. 在設計工具上,如果未選取 [傳送電子郵件] 動作,請選取該動作。

  7. 在動作資訊窗格的 [參數] 索引標籤上,提供動作的必要資訊,例如:

    此螢幕快照顯示 Office 365 Outlook 動作的資訊,名為傳送電子郵件。

    屬性 必填 Description
    目標 Yes <your-email-address> 電子郵件收件者,這可能是您的電子郵件地址,以供測試之用。 此範例使用虛構的電子郵件 sophia.owen@fabrikam.com
    主體 Yes 來自工作流程範例的電子郵件 電子郵件主旨
    本文 Yes 來自您工作流程範例的問候! 電子郵件內文內容

    注意

    如果您在 [測試] 索引標籤上進行任何變更,請務必先選取 [儲存] 以認可這些變更,然後再切換索引標籤或將焦點變更至設計工具。 否則,Visual Studio Code 不會保留您的變更。

  8. 儲存您的工作流程您 在設計工具上,選取 [儲存]

啟用本機執行的 Webhook

當您使用以 Webhook 為基礎的觸發程序或動作,例如 HTTP Webhook,搭配在 Azure 中執行的邏輯應用程式工作流程,Azure Logic Apps 執行階段會藉由產生並註冊該端點的回撥 URL 來訂閱服務端點。 然後觸發程序或動作會等候服務端點呼叫 URL。 不過,當您在 Visual Studio Code 中作業時,產生的回撥 URL 會以 http://localhost:7071/... 開頭。 此 URL 適用於您的 localhost 伺服器,這是私人的,因此服務端點無法呼叫此 URL。

若要在 Visual Studio Code 中本機執行以 Webhook 為基礎的觸發程序和動作,您必須設定公用 URL 來公開 localhost 伺服器,並安全地將呼叫從服務端點轉送到 Webhook 回撥 URL。 您可以使用轉送服務和工具,例如 ngrok,其會開啟連至您的 localhost 連接埠的 HTTP 通道,也可以使用自己的同等工具。

使用 ngrok 設定通話轉送

  1. 移至 ngrok 網站。 如果您已經有帳戶,請註冊新的帳戶或登入您的帳戶。

  2. 取得您的個人驗證權杖,您的 ngrok 用戶端需要連線並驗證對您帳戶的存取權。

    1. 若要尋找您的驗證權杖頁面,請在您的帳戶儀表板功能表上,展開 [驗證],然後選取 [您的 Authtoken]

    2. 從 [您的 Authtoken] 方塊中,將權杖複製到安全的位置。

  3. ngrok 下載頁面您的帳戶儀表板中,下載您想要的 ngrok 版本,然後擷取 .zip 檔案。 如需詳細資訊,請參閱步驟 1:解壓縮以安裝

  4. 在您的電腦上,開啟命令提示字元工具。 瀏覽至您擁有 ngrok.exe 檔案的位置。

  5. ngrok 用戶端連線至 ngrok 帳戶,方法是執行下列命令。 如需詳細資訊,請參閱步驟 2:連線您的帳戶

    ngrok authtoken <your_auth_token>

  6. 執行下列命令,以開啟 HTTP 通道至 localhost 連接埠 7071。 如需詳細資訊,請參閱步驟 3:觸發

    ngrok http 7071

  7. 從輸出,尋找下列這行:

    http://<domain>.ngrok.io -> http://localhost:7071

  8. 複製並儲存具有此格式的 URL:http://<domain>.ngrok.io

在應用程式設定中設定轉送 URL

  1. 在 Visual Studio Code 的設計工具上,新增您想要使用的 Webhook 型觸發程序或動作。

    此範例會繼續進行 HTTP + Webhook 觸發程序。

  2. 出現主機端點位置的提示時,請輸入您先前建立的轉送 (重新導向) URL。

    注意

    忽略提示會導致出現警告,指出您必須提供轉送 URL,因此請選取 [設定],然後輸入 URL。 完成此步驟之後,針對您可能新增的後續 Webhook 觸發程序或動作,提示將不會出現。

    若要讓提示出現,請在專案的根層級開啟 local.settings.json 檔案的捷徑功能表,然後選取 [設定 Webhook 重新導向端點]。 提示現在會出現,讓您可以提供轉送 URL。

    Visual Studio Code 會將轉送 URL 新增至專案根資料夾中的 local.settings.json 檔案。 在 Values 物件中,名為 Workflows.WebhookRedirectHostUri 的屬性現在會出現,並設定為轉送 URL,例如:

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage": "UseDevelopmentStorage=true",
          "FUNCTIONS_WORKER_RUNTIME": "node",
          "FUNCTIONS_V2_COMPATIBILITY_MODE": "true",
          <...>
          "Workflows.WebhookRedirectHostUri": "http://xxxXXXXxxxXXX.ngrok.io",
          <...>
       }
    }
    

當您第一次啟動本機偵錯工作階段或在沒有偵錯的況下執行工作流程時,Azure Logic Apps 執行階段會向服務端點註冊工作流程,並訂閱該端點以通知 Webhook 作業。 下次工作流程執行時,執行階段將不會註冊或重新訂閱,因為訂用帳戶註冊已存在於本機儲存體中。

當您停止使用本機執行的 Webhook 型觸發程序或動作的工作流程執行的偵錯工作階段時,不會刪除現有的訂用帳戶註冊。 若要取消註冊,您必須手動移除或刪除訂用帳戶註冊。

注意

工作流程開始執行之後,終端機視窗可能會顯示類似下列範例的錯誤:

message='Http request failed with unhandled exception of type 'InvalidOperationException' and message: 'System.InvalidOperationException: Synchronous operations are disallowed. Call ReadAsync or set AllowSynchronousIO to true instead.'

在此情況下,請開啟專案的根資料夾中的 local.settings.json 檔案,並確定屬性設定為 true

"FUNCTIONS_V2_COMPATIBILITY_MODE": "true"

管理偵錯的中斷點

在您透過啟動偵錯工作階段來執行並測試邏輯應用程式工作流程之前,您可以在 workflow.json 檔案內為每個工作流程設定中斷點。 不需要其他設定。

目前,只有動作才支援中斷點,觸發程序不支援。 每個動作定義都有這些中斷點位置:

  • 在顯示動作名稱的行上設定起始中斷點。 當此中斷點在偵錯工作階段期間叫用時,您可以先檢閱動作的輸入,再進行評估。

  • 在顯示動作的右大括號 (}) 的行上設定結束中斷點。 當此中斷點在偵錯工作階段期間叫用時,您可以在動作完成執行之前檢閱動作的結果。

若要新增中斷點,請遵循下列步驟:

  1. 開啟您要偵錯的工作流程的 workflow.json 檔案。

  2. 在您要設定中斷點的行上,於左側資料行中,於該資料行內部選取。 若要移除中斷點,請選取該中斷點。

    啟動偵錯工作階段時,[執行] 檢視會出現在程式碼視窗的左側,而 [偵錯] 工具列會出現在頂端附近。

    注意

    如果 [執行] 檢視未自動出現,請按 Ctrl+Shift+D。

  3. 若要在中斷點叫用時檢閱可用的資訊,請在 [執行] 檢視中檢查 [變數] 窗格。

  4. 若要繼續工作流程執行,請在 [偵錯] 工具列上選取 [繼續] (播放按鈕)。

您可以在工作流程執行期間隨時新增和移除中斷點。 不過,如果您在執行開始之後更新 workflow.json 檔案,中斷點不會自動更新。 若要更新中斷點,請重新啟動邏輯應用程式。

如需一般資訊,請參閱中斷點 - Visual Studio Code

在本機執行、測試和偵錯

若要測試邏輯應用程式工作流程,請遵循下列步驟來啟動偵錯工作階段,並尋找要求觸發程序所建立端點的 URL。 您需要此 URL,以便稍後可將要求傳送至該端點。

  1. 若要更輕鬆地偵錯無狀態工作流程,您可以啟用該工作流程的執行歷程記錄

  2. 如果您的 Azurite 模擬器已在執行中,請繼續進行下一個步驟。 否則,請務必在執行工作流程之前啟動模擬器:

    1. 在 Visual Studio Code 中,從 [檢視] 功能表,選取 [命令選擇區]

    2. 命令選擇區出現之後,輸入 Azurite: Start

    如需 Azurite 命令的詳細資訊,請參閱 Visual Studio Code 中 Azurite 延伸模組的文件。

  3. 在 Visual Studio Code 活動列上,開啟 [執行] 功能表,然後選取 [開始偵錯] (F5)。

    [終端機] 視窗隨即開啟,使得您可以檢閱偵錯工作階段。

    注意

    如果您收到錯誤:「執行 preLaunchTask 'generateDebugSymbols' 後存在錯誤」,請參閱疑難排解小節:偵錯工作階段無法啟動

  4. 現在,在要求觸發程序上尋找端點的回撥 URL。

    1. 重新開啟 [總管] 窗格,以便檢視您的專案。

    2. workflow.json 檔案的捷徑功能表中,選取 [概觀]

      顯示 [總管] 窗格的螢幕快照,workflow.json具有選取選項的檔案快捷方式功能表 [概觀]。

    3. 尋找回撥 URL 值,其類似範例要求觸發程序的此 URL:

      http://localhost:7071/api/<workflow-name>/triggers/manual/invoke?api-version=2020-05-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<shared-access-signature>

      此螢幕快照顯示具有回呼 URL 的工作流程概觀頁面。

  5. 若要藉由觸發邏輯應用程式工作流程來測試回撥 URL,請開啟 Postman 或您偏好用來建立和傳送要求的工具。

    此範例會使用 Postman 繼續進行。 如需詳細資訊,請參閱 Postman 使用者入門

    1. 在 Postman 工具列上,選取 [新增]

      顯示已選取 [新增] 按鈕的 Postman 螢幕快照

    2. 在 [新建] 窗格的 [建置組塊] 底下,選取 [要求]

    3. 在 [儲存要求] 視窗的 [要求名稱] 底下,提供要求的名稱,例如測試工作流程觸發程序

    4. 在 [選取要儲存至的集合或資料夾] 底下,選取 [建立集合]

    5. 在 [所有集合] 底下,提供要建立的集合名稱以便組織您的要求、按 Enter,然後選取 [儲存至 <集合名稱>]。 此範例會使用 Logic Apps 要求作為集合名稱。

      在 Postman 中,要求窗格隨即開啟,以便您將要求傳送至要求觸發程序的回撥 URL。

      顯示Postman的螢幕快照,其中包含已開啟的要求窗格。

    6. 返回 Visual Studio Code。 從工作流程的概觀頁面,複製回撥 URL屬性值。

    7. 回到 Postman。 在要求窗格上,於方法清單 (目前顯示 GET 作為預設要求方法) 旁邊,貼上您先前在位址方塊中複製的回撥 URL,然後選取 [傳送]

      螢幕快照:顯示 [位址] 方塊中已選取 [傳送] 按鈕的 Postman 和回呼 URL。

      範例邏輯應用程式工作流程會傳送類似此範例的電子郵件:

      此螢幕快照顯示 Outlook 電子郵件,如範例所述。

  6. 在 Visual Studio Code 中,回到工作流程的概觀頁面。

    如果您已建立具狀態工作流程,在您傳送的要求觸發工作流程之後,概觀頁面會顯示工作流程的執行狀態和歷程記錄。

    提示

    如果執行狀態沒有出現,請選取 [重新整理] 來嘗試重新整理概觀頁面。 由於未符合準則或找不到資料而略過的觸發程序不會發生任何執行。

    顯示工作流程概觀頁面的螢幕快照,其中包含執行狀態和歷程記錄

    下表顯示每個工作流程執行可能有並會在 Visual Studio Code 中顯示的可能最終狀態:

    執行狀態 描述
    已中止 執行因外部問題而停止或未完成,例如系統中斷或 Azure 訂用帳戶失效。
    已取消 執行已觸發並啟動,但收到取消要求。
    失敗 執行中至少有一個動作失敗。 工作流程中沒有任何設定要處理失敗的後續動作。
    執行中 執行已觸發且正在進行中,但此狀態也會針對由於動作限制目前的定價方案而節流的執行顯示。

    提示:如果您設定診斷記錄,則也可取得任何關於所發生節流事件的資訊。

    已成功 執行成功。 如有任何動作失敗,工作流程中的後續動作處理了該失敗。
    逾時 執行已逾時,因為目前的持續時間超過執行持續時間限制,這是由執行歷程記錄保留天數設定所控制。 執行的持續時間是使用執行的開始時間和該開始時間的執行持續時間限制來計算。

    注意:如果執行的持續時間也超過目前的執行歷程記錄保留限制,這也是由執行歷程記錄保留天數設定所控制,則會透過每日清除作業從執行歷程記錄中清除執行。 不論執行逾時或完成,一律會使用執行的開始時間和目前保留限制來計算保留期間。 因此,如果您減少進行中執行的持續時間限制,執行階段就會逾時。不過,執行會根據執行的持續時間是否超出保留限制,保持下去或從執行歷程記錄中清除。

    等待 例如,執行因為先前仍在執行的工作流程執行個體而尚未開始或已暫停。
  7. 若要檢閱特定執行中每個步驟的狀態,以及步驟的輸入和輸出,請選取該執行的省略符號 (...) 按鈕,然後選取 [顯示執行]

    此螢幕快照顯示工作流程的執行歷程記錄數據列,其中包含選取的省略號按鈕和 [顯示執行]。

    Visual Studio Code 即會開啟監視檢視,並顯示執行中每個步驟的狀態。

    顯示工作流程執行中每個步驟及其狀態的螢幕快照。

    注意

    如果執行失敗,且監視檢視中的步驟顯示 400 不正確的要求錯誤,則此問題可能是因為觸發程序名稱或動作名稱較長,導致基礎統一資源識別項 (URI) 超過預設字元限制。 如需詳細資訊,請參閱「400 不正確的要求」

    下表顯示每個工作流程動作可能有並會在 Visual Studio Code 中顯示的可能狀態:

    動作狀態 描述
    已中止 動作因外部問題而停止或未完成,例如系統中斷或 Azure 訂用帳戶失效。
    已取消 動作執行中,但收到了取消的要求。
    失敗 動作失敗。
    執行中 動作目前正在執行中。
    已略過 因為緊接在前的動作失敗,已略過該動作。 動作有一個 runAfter 條件,要求先完成前述動作,目前的動作才可以執行。
    已成功 動作成功。
    重試後成功 動作只有在一或多個重試之後才會成功。 若要檢閱重試歷程記錄,請在 [執行歷程記錄詳細資料] 檢視中選取該動作,以便檢視輸入和輸出。
    逾時 動作因該動作的設定所指定的逾時限制而停止。
    等待 適用於正在等候呼叫端輸入要求的 Webhook 動作。
  8. 若要檢閱每個步驟的輸入和輸出,請選取您需要檢查的步驟。 若要進一步檢閱該步驟的原始輸入和輸出,請選取 [顯示原始輸入] 或 [顯示原始輸出]

    此螢幕快照顯示工作流程中每個步驟的狀態,以及展開動作中名為 [傳送電子郵件] 的輸入和輸出。

  9. 若要停止偵錯工作階段,請在 [執行] 功能表上,選取 [停止偵錯] (Shift + F5)。

傳回回應

當您有以要求觸發程序開頭的工作流程時,可以使用名為 [回應] 的要求內建動作,將回應傳回給將要求傳送至工作流程的呼叫者。

  1. 在工作流程設計工具的 [傳送電子郵件] 動作下,選取加號 (+) > [新增動作]

    [新增動作] 窗格會隨即開啟,讓您選取下一個動作。

  2. 在 [新增動作] 窗格中,從 [工作階段] 清單中,選取 [應用程式內]。 尋找並新增 [回應] 動作。

    在 [回應] 動作出現在設計工具上之後,動作的詳細資料窗格會自動開啟。

    顯示工作流程設計工具與回應資訊窗格的螢幕快照。

  3. 在 [參數] 索引標籤上,提供您想要呼叫的函式的必要資訊。

    這個範例會傳回 Body 參數值,這是 [傳送電子郵件] 動作的輸出。

    1. 針對 Body 參數,選取編輯方塊內部,然後選取閃電圖示,這會開啟動態內容清單。 此清單會顯示來自工作流程中上述觸發程序和動作的可用輸出值。

    2. 在動態內容清單中,在 [傳送電子郵件] 底下選取 [內文]

      此螢幕快照顯示開啟動態內容清單,其中在 [傳送電子郵件標頭] 底下,已選取 [內文] 輸出值。

      完成時,回應動作的 [內文] 屬性現在會設定為 [傳送電子郵件] 動作的 [內文] 輸出值。

      此螢幕快照顯示工作流程設計工具、[回應資訊] 窗格,以及 [內文] 參數設定為 [傳送電子郵件] 動作的 [內文] 值。

  4. 在設計工具上,選取 [儲存]

重新測試邏輯應用程式

對邏輯應用程式進行更新之後,您可以在 Visual Studio 中重新執行偵錯工具,並傳送另一個要求來觸發更新的邏輯應用程式,類似於在本機執行、測試及偵錯中的步驟。

  1. 在 Visual Studio Code 活動列上,開啟 [執行] 功能表,然後選取 [開始偵錯] (F5)。

  2. 在 Postman 或用來建立和傳送要求的工具中,傳送另一個要求來觸發您的工作流程。

  3. 如果您已建立具狀態工作流程,請在工作流程的概觀頁面上,檢查最新執行的狀態。 若要檢視該執行中每個步驟的狀態、輸入及輸出,請選取該執行的省略符號 (...) 按鈕,然後選取 [顯示執行]

    例如,以下是使用回應動作更新範例工作流程之後,執行的逐步狀態。

    此螢幕快照顯示已更新工作流程中每個步驟的狀態,以及展開響應動作中的輸入和輸出。

  4. 若要停止偵錯工作階段,請在 [執行] 功能表上,選取 [停止偵錯] (Shift + F5)。

尋找防火牆存取的網域名稱

在 Azure 入口網站部署和執行您的邏輯應用程式工作流程之前,如果您的環境有嚴格的網路需求或會限制流量的防火牆,您必須為工作流程中存在的任何觸發程序或動作連線設定權限。

若要尋找這些連線的完整網域名稱 (FQDN),請遵循下列步驟:

  1. 在您的邏輯應用程式專案中,開啟 connections.json 檔案,這是在您將第一個以連線為基礎的觸發程序或動作新增至工作流程之後建立,並尋找 managedApiConnections 物件。

  2. 針對您建立的每個連線,將 connectionRuntimeUrl 屬性值複製並儲存在安全的地方,以便使用此資訊來設定防火牆。

    此範例 connections.json 檔案包含兩個連線:AS2 連線,以及具有這些 connectionRuntimeUrl 值的 Office 365 連線:

    • AS2:"connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/as2/11d3fec26c87435a80737460c85f42ba

    • Office 365:"connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/office365/668073340efe481192096ac27e7d467f

    {
       "managedApiConnections": {
          "as2": {
             "api": {
                "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/as2"
             },
             "connection": {
                "id": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{Azure-resource-group}/providers/Microsoft.Web/connections/{connection-resource-name}"
             },
             "connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/as2/11d3fec26c87435a80737460c85f42ba,
             "authentication": {
                "type":"ManagedServiceIdentity"
             }
          },
          "office365": {
             "api": {
                "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/office365"
             },
             "connection": {
                "id": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{Azure-resource-group}/providers/Microsoft.Web/connections/{connection-resource-name}"
             },
             "connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/office365/668073340efe481192096ac27e7d467f,
             "authentication": {
                "type":"ManagedServiceIdentity"
             }
          }
       }
    }
    

部署至 Azure

從 Visual Studio Code,您可以直接將專案發佈至 Azure,以部署您的標準邏輯應用程式資源。 您可以將邏輯應用程式發佈為新資源,其會自動建立任何必要的資源,例如 Azure 儲存體帳戶,類似於函式應用程式需求。 或者,您可以將您的邏輯應用程式發佈至先前部署的標準邏輯應用程式資源,這會覆寫該邏輯應用程式。

標準邏輯應用程式資源的部署,需要您在部署期間選取主控方案和定價層。 如需詳細資訊,請檢閱主控方案和定價層

發佈至新的標準邏輯應用程式資源

  1. 在 Visual Studio Code 活動列上,選取 Azure 圖示,以開啟 [Azure] 視窗。

  2. 在 [Azure] 視窗中, 從 [Azure Logic Apps] 功能表的 [工作區] 區段工具列上,選取 [部署至邏輯應用程式]

    顯示 Azure 視窗的螢幕快照,其中已選取 [工作區] 工具列和 [Azure Logic Apps] 快捷方式功能表,其中已選取 [部署至邏輯應用程式]。

  3. 如果出現提示,請選取要用於邏輯應用程式部署的 Azure 訂用帳戶。

  4. 從 Visual Studio Code 開啟的清單中,從下列選項中選取:

    • 在 Azure 中建立新的邏輯應用程式 (標準) (快速)
    • 在 Azure 進階中建立新的邏輯應用程式 (標準)
    • 先前部署的邏輯應用程式 (標準) 資源,如果有的話

    此範例會繼續進行在 Azure 進階中建立新的邏輯應用程式 (標準)

    顯示部署選項清單和選取選項的螢幕快照:在 Azure 進階中建立新的邏輯應用程式(標準)。

  5. 若要建立新的標準邏輯應用程式資源,請遵循下列步驟:

    1. 為您的新邏輯應用程式提供全域唯一的名稱,這是要用於邏輯應用程式 (標準) 資源的名稱。 此範例會使用 Fabrikam-Workflows-App

      此螢幕快照顯示提示,提供要建立之新邏輯應用程式的名稱。

    2. 選取新邏輯應用程式的主控方案。 建立方案的名稱,或選取現有的方案 (僅限 Windows 型 App Service 方案)。 此範例會選取 [建立新的 App Service 方案]

      此螢幕快照顯示 [Logic Apps (Standard)] 窗格和提示「建立新的 App Service 方案」,或選取現有的 App Service 方案。

    3. 提供主控方案的名稱,然後選取所選方案的定價層。

      如需詳細資訊,請檢閱主控方案和定價層

    4. 若要獲得最佳效能,請選取與專案相同的資源群組來進行部署。

      注意

      雖然您可以建立或使用不同的資源群組,但這樣做可能會影響效能。 如果您建立或選擇不同的資源群組,但在出現確認提示之後取消,則也會取消您的部署。

    5. 針對具狀態工作流程,選取 [建立新儲存體帳戶] 或現有的儲存體帳戶。

      顯示 [Logic Apps (Standard)] 窗格和提示以建立或選取記憶體帳戶的螢幕快照。

    6. 如果邏輯應用程式的建立和部署設定支援使用 Application Insights,您可選擇性地啟用邏輯應用程式的診斷記錄和追蹤。 您可以在從 Visual Studio Code 部署邏輯應用程式時或部署之後執行此動作。 您需要有 Application Insights 執行個體,但可以在部署邏輯應用程式時或在部署之後,預先建立此資源。

      若要立即啟用記錄和追蹤,請遵循下列步驟:

      1. 選取現有的 Application Insights 資源或 [建立新的 Application Insights 資源]

      2. Azure 入口網站中,移至您的 Application Insights 資源。

      3. 在資源功能表上,選取 [概觀]。 尋找並複製 [檢測金鑰] 值。

      4. 在 Visual Studio Code 中,在您的專案的根資料夾中,開啟 local.settings.json 檔案。

      5. Values 物件中,新增 APPINSIGHTS_INSTRUMENTATIONKEY 屬性,並將值設定為檢測金鑰,例如:

        {
           "IsEncrypted": false,
           "Values": {
              "AzureWebJobsStorage": "UseDevelopmentStorage=true",
              "FUNCTIONS_WORKER_RUNTIME": "node",
              "APPINSIGHTS_INSTRUMENTATIONKEY": <instrumentation-key>
           }
        }
        

        提示

        您可以檢查觸發程序和動作名稱是否正確出現在 Application Insights 執行個體中。

        1. 在 Azure 入口網站中,移至您的 Application Insights 資源。

        2. 在資源功能表的 [調查] 底下,選取 [應用程式對應]

        3. 檢閱出現在對應中的作業名稱。

        來自內建觸發程序的某些輸入要求可能會在應用程式對應中顯示為重複項目。 這些重複項目會使用工作流程名稱作為作業名稱,而不是使用 WorkflowName.ActionName 格式,並且源自 Azure Functions 主機。

      6. 接下來,您可以選擇性地調整邏輯應用程式收集並傳送至 Application Insights 執行個體的追蹤資料的嚴重性層級。

        每次發生工作流程相關事件時,例如當觸發工作流程或動作執行時,執行階段會發出各種追蹤。 這些追蹤會涵蓋工作流程的存留期,包括但不限於下列事件類型:

        • 服務活動,例如啟動、停止和錯誤。
        • 作業和發送器活動。
        • 工作流程活動,例如觸發程序、動作和執行。
        • 儲存體要求活動,例如成功或失敗。
        • HTTP 要求活動,例如輸入、輸出、成功和失敗。
        • 任何開發追蹤,例如偵錯訊息。

        每個事件類型都會獲指派某個嚴重性層級。 例如,Trace 層級會擷取最詳細的訊息,而 Information 層級會擷取工作流程中的一般活動,例如,邏輯應用程式、工作流程、觸發程序和啟動和停止動作。 下表描述嚴重性層級及其追蹤類型:

        嚴重性等級 追蹤類型
        重大 描述邏輯應用程式中無法復原的失敗的記錄。
        偵錯 您可以在開發期間 (例如輸入和輸出 HTTP 呼叫) 用於調查的記錄。
        錯誤 指出工作流程執行中失敗 (但不是邏輯應用程式中的一般失敗) 的記錄。
        資訊 追蹤邏輯應用程式或工作流程中一般活動的記錄,例如:

        - 觸發程序、動作或執行開始和結束時。
        - 邏輯應用程式開始或結束時。

        追蹤 包含最詳細訊息的記錄,例如儲存體要求或發送器活動,加上與工作流程執行活動相關的所有訊息。
        警告 強調邏輯應用程式中的異常狀態,但不會防止其執行的記錄。

        若要設定嚴重性層級,請在專案的根層級開啟 host.json 檔案,然後尋找 logging 物件。 此物件會控制您的邏輯應用程式中所有工作流程的記錄篩選,並遵循記錄類型篩選的 ASP.NET Core 配置

        {
           "version": "2.0",
           "logging": {
              "applicationInsights": {
                 "samplingExcludedTypes": "Request",
                 "samplingSettings": {
                    "isEnabled": true
                 }
              }
           }
        }
        

        如果 logging 物件不包含含有 Host.Triggers.Workflow 屬性的 logLevel 物件,請新增這些項目。 將屬性設定為您想要的追蹤類型的嚴重性層級,例如:

        {
           "version": "2.0",
           "logging": {
              "applicationInsights": {
                 "samplingExcludedTypes": "Request",
                 "samplingSettings": {
                    "isEnabled": true
                 }
              },
              "logLevel": {
                 "Host.Triggers.Workflow": "Information"
              }
           }
        }
        

    完成部署步驟時,Visual Studio Code 會開始建立和部署發佈您的邏輯應用程式所需的資源。

  6. 若要檢閱及監視部署程序,請在 [檢視] 功能表上,選取 [輸出]。 從輸出視窗工具列清單中,選取 [Azure Logic Apps]

    顯示 [輸出] 視窗的螢幕快照,其中已選取工具列清單中的 Azure Logic Apps 以及部署進度和狀態。

    當 Visual Studio Code 完成將邏輯應用程式部署至 Azure 時,會出現下列訊息:

    螢幕快照顯示已順利部署至 Azure 的訊息。

    恭喜,您的邏輯應用程式現在已於 Azure 中上線,並且預設為啟用。

接下來,您可以了解如何執行這些工作:

將空白工作流程新增至專案

您可以在邏輯應用程式專案中有多個工作流程。 若要將空白工作流程新增至您的專案,請遵循下列步驟:

  1. 在 Visual Studio Code 活動列上,選取 Azure 圖示。

  2. 在 [Azure] 視窗中, 從 [Azure Logic Apps] 功能表的 [工作區] 區段工具列上,選取 [建立工作流程]

  3. 選取您想要新增的工作流程類型:具狀態無狀態

  4. 提供您的工作流程的名稱。

完成時,您的專案中會出現新的工作流程資料夾,以及工作流程定義的 workflow.json 檔案。

在 Visual Studio Code 中管理已部署的邏輯應用程式

在 Visual Studio Code 中,您可以檢視 Azure 訂用帳戶中所有已部署的邏輯應用程式,無論是使用量或標準邏輯應用程式資源,以及選取可協助您管理這些邏輯應用程式的工作。 不過,若要存取這兩種資源類型,您需要適用於 Visual Studio Code 的 [Azure Logic Apps (使用量)] 和 [Azure Logic Apps (標準)] 延伸模組。

  1. 在 Visual Studio Code 活動列上,選取 Azure 圖示。 在 [資源] 中,展開您的訂用帳戶,然後展開 [邏輯應用程式],以顯示該訂用帳戶在 Azure 中部署的所有邏輯應用程式。

  2. 開啟您要管理的邏輯應用程式。 從邏輯應用程式的捷徑功能表中,選取您要執行的工作。

    例如,您可以選取停止、開始、重新開始或刪除已部署邏輯應用程式之類的工作。 您可以使用 Azure 入口網站來停用或啟用工作流程

    注意

    停止邏輯應用程式和刪除邏輯應用程式作業會以不同的方式影響工作流程執行個體。 如需詳細資訊,請檢閱停止邏輯應用程式的考量刪除邏輯應用程式的考量

    顯示 Visual Studio Code with Resources 區段和已部署邏輯應用程式資源的螢幕快照。

  3. 若要檢視邏輯應用程式中的所有工作流程,請展開邏輯應用程式,然後展開 [工作流程] 節點。

  4. 若要檢視特定工作流程,請開啟工作流程的捷徑功能表,然後選取 [在設計工具中開啟],以唯讀模式開啟工作流程。

    若要編輯工作流程,您有下列選項:

    • 在 Visual Studio Code 中,在工作流程設計工具中開啟專案的 workflow.json 檔案、進行編輯,並將邏輯應用程式重新部署至 Azure。

    • 在 Azure 入口網站中,開啟邏輯應用程式。 然後,您可以開啟、編輯及儲存工作流程。

  5. 若要在 Azure 入口網站中開啟部署的邏輯應用程式,請開啟邏輯應用程式的捷徑功能表,然後選取 [在入口網站中開啟]

    Azure 入口網站會在瀏覽器中開啟,自動登入入口網站 (如果您已登入 Visual Studio Code),並顯示您的邏輯應用程式。

    此螢幕快照顯示 Visual Studio Code 中邏輯應用程式的 Azure 入口網站 頁面。

    您也可以個別登入 Azure 入口網站、使用入口網站搜尋方塊來尋找邏輯應用程式,然後從結果清單中選取邏輯應用程式。

    顯示 Azure 入口網站和搜尋列的螢幕快照,其中顯示已部署邏輯應用程式的搜尋結果,其中已選取。

停止邏輯應用程式的考量

停止邏輯應用程式會以下列方式影響工作流程執行個體:

  • Azure Logic Apps 會立即取消所有進行中和擱置的執行。

  • Azure Logic Apps 不會建立或執行新的工作流程執行個體。

  • 觸發程序不會在下一次符合其條件時引發。 不過,觸發程序狀態會記住邏輯應用程式的停止點。 因此,如果您重新啟動邏輯應用程式,則會針對上次執行後所有未處理的項目引發觸發程序。

    若要停止觸發程序在上次執行後未處理的項目上觸發,請先清除觸發程序的狀態,再重新啟動邏輯應用程式:

    1. 在 Visual Studio Code 活動列上,選取 Azure 圖示,以開啟 [Azure] 視窗。

    2. 在 [資源] 區段中,展開您的訂用帳戶,其中顯示該訂用帳戶的所有已部署邏輯應用程式。

    3. 展開邏輯應用程式,然後展開名為工作流程的節點。

    4. 開啟工作流程,然後編輯該工作流程觸發程序的任何部分。

    5. 儲存您的變更。 此步驟會重設觸發程序的目前狀態。

    6. 針對每個工作流程重複執行。

    7. 完成後,重新啟動邏輯應用程式。

刪除邏輯應用程式的考量

刪除邏輯應用程式會以下列方式影響工作流程執行個體:

  • Azure Logic Apps 會立即取消進行中和擱置的執行,但不會在應用程式所使用的儲存體上執行清除工作。

  • Azure Logic Apps 不會建立或執行新的工作流程執行個體。

  • 如果您刪除某個工作流程,然後重新建立相同的工作流程,重新建立的工作流程不會擁有與刪除的工作流程相同的中繼資料。 若要重新整理中繼資料,您必須重新儲存任何呼叫已刪除工作流程的工作流程。 如此一來,呼叫者就能獲得重新建立的工作流程的正確資訊。 否則,對重新建立的工作流程的呼叫會因為 Unauthorized 錯誤而失敗。 此行為也適用於在整合帳戶中使用成品的工作流程,以及呼叫 Azure 函數的工作流程。

在入口網站中管理已部署的邏輯應用程式

從 Visual Studio Code 將邏輯應用程式部署至 Azure 入口網站之後,您可以檢視 Azure 訂用帳戶中的所有已部署邏輯應用程式,無論是使用量或標準邏輯應用程式資源。 目前,每個資源類型都會在 Azure 中組織並管理為的個別類別。 若要尋找標準邏輯應用程式,請遵循下列步驟:

  1. 在 Azure 入口網站搜尋方塊中,輸入邏輯應用程式。 當結果清單出現時,請在 [服務] 底下,選取 [邏輯應用程式]

    螢幕快照:顯示搜尋方塊 Azure 入口網站 邏輯應用程式做為搜尋文字。

  2. 在 [邏輯應用程式] 窗格中,選取您從 Visual Studio Code 部署的邏輯應用程式。

    此螢幕快照顯示部署在 Azure 中的 Azure 入口網站 和標準邏輯應用程式資源。

    Azure 入口網站會開啟所選邏輯應用程式的個別資源頁面。

    顯示 Azure 入口網站和邏輯應用程式資源頁面的螢幕快照。

  3. 若要檢視此邏輯應用程式中的工作流程,請在邏輯應用程式的功能表上,選取 [工作流程]

    [工作流程] 窗格會顯示目前邏輯應用程式中的所有工作流程。 此範例顯示您在 Visual Studio Code 中建立的工作流程。

    顯示邏輯應用程式資源頁面的螢幕快照,其中包含已開啟的 [工作流程] 窗格和工作流程。

  4. 若要檢視工作流程,請在 [工作流程] 窗格上,選取該工作流程。

    工作流程窗格隨即開啟,並顯示您可以在該工作流程上執行的詳細資訊和工作。

    例如,若要檢視工作流程中的步驟,請選取 [設計工具]

    螢幕快照顯示所選工作流程的 [概觀] 窗格,而工作流程功能表會顯示選取的 [設計工具] 命令。

    工作流程設計工具隨即開啟,並顯示您在 Visual Studio Code 建置的工作流程。 您現在可以在 Azure 入口網站中對此工作流程進行變更。

    此螢幕快照顯示從 Visual Studio Code 部署的工作流程設計工具與工作流程。

在入口網站中新增另一個工作流程

透過 Azure 入口網站,您可以將空白工作流程新增至您從 Visual Studio Code 部署的標準邏輯應用程式資源,並在 Azure 入口網站中建置這些工作流程。

  1. Azure 入口網站中,選取已部署的標準邏輯應用程式資源。

  2. 在邏輯應用程式資源功能表上,選取 [工作流程]。 在 [工作流程] 窗格上,選取 [新增]

    顯示已選取邏輯應用程式的 [工作流程] 窗格和工具列的螢幕快照,其中已選取 [新增] 命令。

  3. 在 [新增工作流程] 窗格中,提供工作流程的名稱。 選取 [具狀態] 或 [無狀態]> [建立]

    在 Azure 部署您的新工作流程之後,其會出現在 [工作流程] 窗格上,請選取該工作流程,以便您可以管理和執行其他工作,例如開啟設計工具或程式碼檢視。

    顯示已選取工作流程的螢幕快照,其中包含管理和檢閱選項。

    例如,開啟新工作流程的設計工具會顯示空白畫布。 您現在可以在 Azure 入口網站中建置此工作流程。

    顯示工作流程設計工具與空白工作流程的螢幕快照。

啟用無狀態工作流程的執行歷程記錄

若要更輕鬆地偵錯無狀態工作流程,您可以啟用該工作流程的執行歷程記錄,然後在完成時停用執行歷程記錄。 針對 Visual Studio Code 遵循下列步驟,或如果您正在 Azure 入口網站中作業,請參閱在 Azure 入口網站中建立單一租用戶型工作流程

  1. 在您的 Visual Studio Code 專案中,於根資料夾層級開啟 local.settings.json 檔案。

  2. 新增 Workflows.{yourWorkflowName}.operationOptions 屬性,然後將值設定為 WithStatelessRunHistory,例如:

    Windows

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage": "UseDevelopmentStorage=true",
          "FUNCTIONS_WORKER_RUNTIME": "node",
          "Workflows.{yourWorkflowName}.OperationOptions": "WithStatelessRunHistory"
       }
    }
    

    macOS 或 Linux

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=fabrikamstorageacct; \
              AccountKey=<access-key>;EndpointSuffix=core.windows.net",
          "FUNCTIONS_WORKER_RUNTIME": "node",
          "Workflows.{yourWorkflowName}.OperationOptions": "WithStatelessRunHistory"
       }
    }
    
  3. 在名為 workflow-designtime 的專案資料夾中,開啟 local.settings.json 檔案,然後進行相同的變更。

  4. 若要在完成時停用執行歷程記錄,請將 Workflows.{yourWorkflowName}.OperationOptions 屬性設定為 None,或刪除此屬性及其值。

在 Azure 入口網站中啟用監視檢視

將 [邏輯應用程式 (標準)] 資源從 Visual Studio Code 部署至 Azure 之後,您可以使用 Azure 入口網站和該工作流程的監視體驗,以檢閱該資源中工作流程的任何可用執行歷程記錄和詳細資料。 不過,您必須先在該邏輯應用程式資源上啟用監視檢視功能。

  1. Azure 入口網站中,開啟標準邏輯應用程式資源。

  2. 在邏輯應用程式資源功能表上的 [API] 底下,選取 [CORS]

  3. CORS 窗格的 [允許的來源] 底下,新增萬用字元 (*)。

  4. 完成時,在 CORS 工具列上,選取 [儲存]

    顯示已部署標準邏輯應用程式資源的 Azure 入口網站 螢幕快照。在資源功能表上,會選取 CORS,並將 [允許來源] 的新項目設定為通配符 * 字元。

在部署後啟用或開啟 Application Insights

在工作流程執行期間,邏輯應用程式會發出遙測和其他事件。 您可以使用此遙測,更清楚地了解工作流程的執行狀況,以及 Logic Apps 執行階段如何以各種方式運作。 您可以使用 Application Insights 監視工作流程,以提供近乎即時的遙測 (即時計量)。 當您使用此資料來診斷問題、設定警示及建置圖表時,這項功能可協助您更輕鬆地調查失敗和效能問題。

如果邏輯應用程式的建立和部署設定支援使用 Application Insights,您可選擇性地啟用邏輯應用程式的診斷記錄和追蹤。 您可以在從 Visual Studio Code 部署邏輯應用程式時或部署之後執行此動作。 您需要有 Application Insights 執行個體,但可以在部署邏輯應用程式時或在部署之後,預先建立此資源。

若要在已部署的邏輯應用程式上啟用 Application Insights,或在已啟用時檢閱 Application Insights 資料,請遵循下列步驟:

  1. 在 Azure 入口網站中,尋找您已部署的邏輯應用程式。

  2. 在邏輯應用程式功能表的 [設定] 之下,選取 [Application Insights]

  3. 如果未啟用 Application Insights,請在 [Application Insights] 窗格上,選取 [開啟 Application Insights]。 窗格更新之後,選取底部的 [套用]

    如果已啟用 Application Insights,請在 [Application Insights] 窗格上,選取 [檢視 Application Insights 資料]

Application Insights 開啟之後,您可以檢閱邏輯應用程式的各種計量。 如需詳細資訊,請檢閱下列主題:

從設計工具刪除項目

若要從設計工具刪除工作流程中的項目,請遵循下列步驟:

  • 選取項目,開啟項目的捷徑功能表 (Shift+F10),然後選取 [刪除]。 請選取 [確定] 確認。

  • 選取項目,然後按 DELETE 鍵。 請選取 [確定] 確認。

  • 選取項目,該項目的詳細資料窗格隨即開啟。 在窗格的右上角,開啟省略符號 (...) 功能表,然後選取 [刪除]。 請選取 [確定] 確認。

    螢幕快照顯示設計工具上已選取的專案,其中包含已開啟的資訊窗格加上選取的省略號按鈕和 [刪除] 命令。

    提示

    如果看不到省略符號功能表,請展開夠寬的 Visual Studio Code 視窗,以便詳細資料窗格顯示右上角的省略符號 (...) 按鈕。

疑難排解錯誤和問題

設計工具無法開啟

嘗試開啟設計工具時,您收到此錯誤:「無法啟動工作流程設計階段」。 如果您先前嘗試開啟設計工具,然後中止或刪除您的專案,延伸模組套件組合可能無法正確下載。 若要檢查此問題是否為其原因,請遵循下列步驟:

  1. 在 Visual Studio Code 中,開啟 [輸出] 視窗。 從 [檢視] 功能表,選取 [輸出]

  2. 從輸出視窗標題列中的清單,選取 [Azure Logic Apps (標準)],以便檢閱延伸模組的輸出,例如:

    顯示已選取 [Azure Logic Apps] 之 [輸出] 視窗的螢幕快照。

  3. 檢閱輸出,並檢查此錯誤訊息是否出現:

    A host error has occurred during startup operation '{operationID}'.
    System.Private.CoreLib: The file 'C:\Users\{userName}\AppData\Local\Temp\Functions\
    ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle.Workflows\1.1.7\bin\
    DurableTask.AzureStorage.dll' already exists.
    Value cannot be null. (Parameter 'provider')
    Application is shutting down...
    Initialization cancellation requested by runtime.
    Stopping host...
    Host shutdown completed.
    

若要解決此錯誤,請刪除此位置 ...\Users{your-username}\AppData\Local\Temp\Functions\ExtensionBundlesExtensionBundles 資料夾,然後重試在設計工具中開啟 workflow.json 檔案。

對於先前建立的工作流程,設計工具選擇器遺漏新的觸發程序和動作

單一租用戶 Azure Logic Apps 支援 Azure 函式作業、Liquid 作業和 XML 作業的內建動作,例如 XML 驗證轉換 XML。 不過,對於先前建立的邏輯應用程式,如果 Visual Studio Code 使用版本過期的延伸套件組合 (Microsoft.Azure.Functions.ExtensionBundle.Workflows),這些動作可能不會出現在設計工具選擇器中供您選取。

此外,除非您在建立邏輯應用程式時啟用或選取 [使用來自 Azure 的連接器],否則 Azure 函式作業連接器和動作不會出現在設計工具選擇器中。 如果您在應用程式建立時未啟用 Azure 部署的連接器,則可以從 Visual Studio Code 的專案中加以啟用。 開啟 workflow.json 捷徑功能表,然後選取 [使用來自 Azure 的連接器]

若要修正過期的套件組合,請遵循下列步驟來刪除過期的套件組合,這會使得 Visual Studio Code 自動將延伸模組套件組合更新為最新版本。

注意

此解決方案僅適用於您使用 Visual Studio Code 搭配 Azure Logic Apps (標準) 延伸模組建立和部署的邏輯應用程式,而非您使用 Azure 入口網站建立的邏輯應用程式。 請參閱 Azure 入口網站中的設計工具遺漏支援的觸發程序和動作

  1. 儲存您不想遺失的任何工作,並關閉 Visual Studio。

  2. 在您的電腦上,瀏覽至下列資料夾,其包含現有套件組合的版本設定資料夾:

    ...\Users\{your-username}\.azure-functions-core-tools\Functions\ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle.Workflows

  3. 刪除舊版套件組合的版本資料夾,例如,如果您有版本 1.1.3 的資料夾,請刪除該資料夾。

  4. 現在,瀏覽至下列資料夾,其包含必要 NuGet 套件的版本化資料夾:

    ...\Users\{your-username}\.nuget\packages\microsoft.azure.workflows.webjobs.extension

  5. 刪除舊版套件的版本資料夾。

  6. 在設計工具中重新開啟 Visual Studio Code、您的專案和 workflow.json 檔案。

遺漏的觸發程序和動作現在會出現在設計工具中。

「400 不正確的要求」會出現在觸發程序或動作上

當執行失敗,且您在監視檢視中檢查執行時,此錯誤可能會出現在名稱較長的觸發程序或動作上,這會導致基礎統一資源識別項 (URI) 超過預設字元限制。

若要解決此問題並調整較長的 URI,請依照下列步驟編輯電腦上的 UrlSegmentMaxCountUrlSegmentMaxLength 登錄機碼。 Windows 的 Http.sys 登錄設定主題中描述這些機碼的預設值。

重要

開始之前,請確定您儲存工作。 完成之後,此解決方案會要求您重新啟動電腦,讓變更生效。

  1. 在您的電腦上,開啟 [執行] 視窗,然後執行 regedit 命令,其會開啟登錄編輯程式。

  2. 在 [使用者帳戶控制] 方塊中,選取 [是] 以允許對電腦的變更。

  3. 在左窗格中的 [電腦] 底下,展開此路徑的節點,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters,然後選取 [參數]

  4. 在右窗格中,尋找 UrlSegmentMaxCountUrlSegmentMaxLength 登錄機碼。

  5. 增加這些機碼值,使得 URI 可容納您想要使用的名稱。 如果這些機碼不存在,請遵循下列步驟,將它們新增至 Parameters 資料夾:

    1. 從 [參數] 捷徑功能表中,選取 [新增]> [DWORD (32 位元) 值]

    2. 在出現的編輯方塊中,輸入 UrlSegmentMaxCount 作為新機碼名稱。

    3. 開啟新機碼的捷徑功能表,然後選取 [修改]

    4. 在出現的 [編輯字串] 方塊中,以十六進位或十進位格式輸入您想要的 [數值資料] 機碼值。 例如,十六進位中的 400 相當於十進位中的 1024

    5. 若要新增 UrlSegmentMaxLength 機碼值,請重複這些步驟。

    增加或新增這些機碼值之後,登錄編輯程式看起來會像此範例:

    顯示登錄編輯器的螢幕快照。

  6. 當您準備好時,請重新啟動電腦,讓變更生效。

偵錯工作階段無法啟動

嘗試啟動偵錯工作階段時,您收到錯誤:「執行 preLaunchTask 'generateDebugSymbols' 後存在錯誤」。 若要解決此問題,請編輯專案中的 tasks.json 檔案,以略過符號產生。

  1. 在您的專案中,展開名為 .vscode 的資料夾,然後開啟 tasks.json 檔案。

  2. 在下列工作中,刪除行 "dependsOn: "generateDebugSymbols",以及結束前一行的逗號,例如:

    之前:

     {
       "type": "func",
       "command": "host start",
       "problemMatcher": "$func-watch",
       "isBackground": true,
       "dependsOn": "generateDebugSymbols"
     }
    

     {
       "type": "func",
       "command": "host start",
       "problemMatcher": "$func-watch",
       "isBackground": true
     }
    

下一步

我們想要聽到您對 Azure Logic Apps (標準) 延伸模組的相關體驗!