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

適用於:Azure Logic Apps (標準)

本作法指南示範如何使用Visual Studio Code 搭配 Azure Logic Apps (Standard) 擴充功能,建立在單一租使用者 Azure Logic Apps 中執行的範例整合工作流程。 建立此工作流程之前,您將建立標準邏輯應用程式資源,其提供下列功能:

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

  • 相同邏輯應用程式和租使用者中的工作流程會在與 Azure Logic Apps 運行時間相同的進程中執行,因此它們會共用相同的資源,並提供更佳的效能。

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

    當您準備好時,您可以將邏輯應用程式部署至 Azure,其中您的工作流程可以在單一租使用者 Azure Logic Apps 環境中或 App Service 環境 v3 中執行(僅限 Windows 型 App Service 方案)。 您也可以在 Kubernetes 可執行的任何位置部署和執行工作流程,包括 Azure、Azure Kubernetes Service、內部部署,或甚至其他雲端提供者,因為 Azure Logic Apps 容器化運行時間。

    注意

    將邏輯應用程式部署至 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 StudioCode

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

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

    自動安裝所有相依性 (預覽)

    重要

    此功能處於預覽狀態,且受限於 Microsoft Azure 預覽版的補充使用規定

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

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

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

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

    2.在 [使用者] 索引標籤上,選取 [擴充>功能][Azure Logic Apps][標準]。

    3.尋找名為 Azure Logic Apps Standard:自動啟動 Azurite 的設定,然後清除選取的複選框。
    .NET SDK 6.x.x 包含 .NET Runtime 6.x.x,這是 Azure Logic Apps (Standard) 運行時間的必要條件。
    Azure Functions Core Tools - 4.x 版 根據您的操作系統安裝版本(WindowsmacOSLinux)。

    這些工具包含支援 Azure Functions 運行時間的相同運行時間版本,Azure Logic Apps (Standard) 擴充功能會在 Visual Studio Code 中使用。
    除非已安裝較新版本,否則Node.js 16.x.x 版 必須啟用執行 JavaScript 的 內嵌程式代碼作業動作

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

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

    2. 在 Visual Studio Code 的 [活動] 列上,選取 [ 擴充功能]。 (鍵盤:按 Ctrl+Shift+X)

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

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

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

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

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

    6. 如有必要,請重載Visual StudioCode。

    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
        節點 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 --info 'dotnet 無法辨識為內部或外部命令、可操作的程式或批處理檔。 'dotnet' 無法辨識為內部或外部命令、可操作的程式或批處理檔。 . 將不會啟用 .NET Core 偵錯。 請確定已安裝 .NET Core SDK,且位於路徑上。」

      您會收到此訊息,因為 .NET Core 架構仍在安裝擴充功能啟動時。 您可以放心地選擇停用此訊息。

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

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

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

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

        3. 在 [環境變數] 方塊中,從 [使用者名稱>的用戶變數<] 清單中,選取 [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 (Standard) 運行時間的必要條件。
    Azure Functions Core Tools - 4.x 版 - Windows:使用 Microsoft Installer (MSI) 版本,也就是 func-cli-X.X.XXXX-x*.msi
    - macOS
    - Linux

    這些工具包含支援 Azure Functions 運行時間的相同運行時間版本,Azure Logic Apps (Standard) 擴充功能會在 Visual Studio Code 中使用。

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

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

    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 訂用帳戶中所有已部署和裝載的邏輯應用程式,但會以下列方式組織您的應用程式:

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

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

  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 Standard:Azure Logic Apps (Standard) 延伸模組的專案運行時間設定已設定為 ~4

    注意

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

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

    2. 在 [使用者] 索引標籤上,移至 [>擴充>功能][Azure Logic Apps] [標準]。

      例如,您可以在這裡找到 Azure Logic Apps Standard:Project Runtime 設定,或使用搜尋方塊尋找其他設定:

      此螢幕快照顯示適用於 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 不是已註冊的組態因此無法寫入 Workspace 設定。 如果您這麼做,請嘗試直接從 Visual Studio Marketplace 或 Visual Studio Code 內部安裝適用於 Visual Studio CodeAzure 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 StudioCode,但預設不會啟用。 若要建立這些連接器,請遵循下列步驟:

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

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

將自定義成品新增至您的專案

在邏輯應用程式工作流程中,某些連接器相依於成品,例如地圖、架構或元件。 在 Visual Studio Code 中,您可以將這些成品上傳至邏輯應用程式專案,類似於如何在 Azure 入口網站 [成品] 底下的 [邏輯應用程式資源] 功能表中上傳這些成品,例如:

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

將對應新增至您的專案

若要將地圖新增至您的專案,請在項目階層中展開 Artifacts> 地圖,這是您可以放置地圖的資料夾。

顯示 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 的轉送來啟用此功能

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

  • 名為「收到 HTTP 要求時」的要求內建連接器觸發程式,可接收輸入呼叫或要求,並建立其他服務或邏輯應用程式工作流程可以呼叫的端點。

  • 名為傳送電子郵件Office 365 Outlook 受管理連接器動作。 若要遵循本操作指南,您需要 Office 365 Outlook 電子郵件帳戶。 如果您有不同連接器支援的電子郵件帳戶,您可以使用該連接器,但該連接器的用戶體驗與此範例中的步驟不同。

  • 名為 Response 的要求內建連接器動作,可用來傳送回復並將數據傳回給呼叫端。

新增「要求」觸發程序

  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 工具時,請選取 [ 開啟]。

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

    提示

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

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

    • 開啟 Microsoft Azure 工具的許可權:選取 [不要再要求此擴充功能]。

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

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

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

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

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

    注意

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

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

啟用在本機執行的 Webhook

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

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

使用 ngrok 設定通話轉接

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

  2. 取得您的個人驗證令牌,您的 ngrok 用戶端必須連線並驗證帳戶的存取權。

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

    2. 從 [ 您的驗證] 方塊中,將令牌複製到安全的位置。

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

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

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

    ngrok authtoken <your_auth_token>

  6. 執行下列命令,開啟對localhost埠7071的 HTTP 通道。 如需詳細資訊,請參閱 步驟 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 鍵,然後選取 [儲存至<集合名稱>]。 此範例會使用 LogicApps要求 作為集合名稱。

      在 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)。

傳回回應

當您有以要求觸發程式開頭的工作流程時,您可以使用名為 Response 的要求內建動作,將要求傳送至工作流程的呼叫端傳回回應

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

    [ 新增動作 ] 窗格隨即開啟,以便選取下一個動作。

  2. 在 [ 新增動作 ] 窗格中,從 [ 運行時間 ] 列表中,選取 [應用程式內]。 尋找並新增 回應 動作。

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

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

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

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

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

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

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

      當您完成時,回應動作的 Body 屬性現在會設定為 傳送電子郵件 動作的 Body 輸出值。

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

  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. 為新的邏輯應用程式提供全域唯一的名稱,這是要用於 邏輯應用程式 (Standard) 資源的名稱。 此範例使用 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. 在物件中ValuesAPPINSIGHTS_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如果物件不包含包含 logLevelHost.Triggers.Workflow 屬性的物件,請新增這些專案。 將 屬性設定為您想要之追蹤類型的嚴重性層級,例如:

        {
           "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 (Standard) 延伸模組。

  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. 展開邏輯應用程式,然後展開名為 Workflows 的節點。

    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 StudioCode中建置的工作流程。 您現在可以在 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}.OperationOptionsNone,或刪除 屬性及其值。

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

將邏輯應用程式 (Standard) 資源從 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,或在已啟用時檢閱ApplicationInsights數據,請遵循下列步驟:

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

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

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

    如果已啟用 Application Insights,請在 [Application Insights] 窗格中,選取 [檢視 Application Insights 數據]。

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

從設計工具刪除專案

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

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

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

  • 選取專案,以便開啟該專案的詳細數據窗格。 在窗格的右上角,開啟省略號 (...) 功能表,然後選取 [ 刪除]。 請選取 [確定] 確認。

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

    提示

    如果看不到省略號功能表,請展開 [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.
    

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

先前建立工作流程的設計工具選擇器中缺少新的觸發程式和動作

單一租使用者 Azure Logic Apps 支援 Azure 函式作業、Liquid Operations 和 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 (Standard) 擴充功能建立和部署的邏輯應用程式,不適用於您使用 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,請遵循下列步驟來編輯 UrlSegmentMaxCount 電腦上的 和 UrlSegmentMaxLength 登錄機碼。 本主題說明這些機碼的預設值, Http.sys Windows 的登錄設定。

重要

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

  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(標準) 擴充功能體驗的意見!