在 Visual Studio Code 中建立具有單一租使用者 Azure Logic Apps (標準) 的整合工作流程

本文說明如何使用 Visual Studio Code 與 Azure Logic Apps (Standard) 延伸模組,建立在 單一租 使用者 Azure Logic Apps 環境中執行的自動化整合工作流程範例。 您使用此擴充功能建立的邏輯應用程式是以 邏輯應用程式為基礎, (標準) 資源類型,它提供下列功能:

  • 您可以在 Visual Studio Code 開發環境中,于本機執行和測試邏輯應用程式工作流程。

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

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

  • 您可以將 邏輯應用程式 (標準) 資源類型直接部署到單一租使用者 Azure Logic Apps 環境或 Azure Functions 可執行檔任何位置,包括容器(因為 Azure Logic Apps 容器化執行時間)。

如需單一租使用者 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。

必要條件

存取與連線能力

  • 存取網際網路,讓您可以下載需求、從 Visual Studio Code 連接到您的 azure 帳戶,以及從 Visual Studio Code 發佈至 azure。

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

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

    如果您選擇不同的電子郵件連接器,例如 Outlook .com,您仍然可以遵循此範例,且一般的整體步驟都一樣。 不過,您的選項可能會有一些不同的方式。 例如,如果您使用 Outlook .com 連接器,請改為使用您的個人 Microsoft 帳戶來登入。

儲存體需求

針對 Visual Studio Code 中的本機開發,您需要為邏輯應用程式專案和工作流程設定本機資料存放區,以便在本機開發環境中執行。 您可以使用和執行 Azurite 儲存體模擬器作為本機資料存放區。

  1. 下載並安裝 Azurite 3.12.0 或更新版本
  2. 執行邏輯應用程式之前,請務必啟動模擬器。

如需詳細資訊,請參閱 Azurite 檔

工具

  • Visual Studio Code,這是免費的。 此外,也請下載並安裝這些工具以用於 Visual Studio Code,如果您還沒有這些工具:

    • Azure 帳戶擴充功能,可針對 Visual Studio Code 中的所有其他 azure 擴充功能,提供單一的 azure 登入和訂用帳戶篩選體驗。

    • 適用于 Visual Studio Code 擴充功能的 c #,可讓 F5 功能執行您的邏輯應用程式。

    • Azure Functions Core Tools 3.0.3477 或更新版本 ,請使用 Microsoft INSTALLER (MSI) 版本,也就是 func-cli-3.0.3477-x*.msi

      這些工具組括支援 Azure Functions 執行時間的相同執行時間版本,Azure Logic Apps (標準) 延伸模組會在 Visual Studio Code 中使用。

      重要

      如果您的安裝早于這些版本,請先卸載該版本,或確定 PATH 環境變數指向您下載並安裝的版本。

    • Azure Logic Apps (Visual Studio Code 的標準) 延伸模組。

      重要

      使用舊版預覽延伸模組所建立的專案將無法再運作。 若要繼續,請卸載任何舊版,然後重新建立邏輯應用程式專案。

      若要安裝 Azure Logic Apps (Standard) 擴充功能,請遵循下列步驟:

      1. 在 Visual Studio Code 中,選取左側工具列上的 [擴充 功能]。

      2. 在 [擴充功能搜尋] 方塊中,輸入 azure logic apps standard 。 從結果清單中,選取 [ Azure Logic Apps (Standard) > 安裝]。

        安裝完成之後,擴充功能會出現在 [ 擴充功能:已安裝 ] 清單中。

        顯示已安裝 Azure Logic Apps (Standard) 延伸模組 Visual Studio Code 的螢幕擷取畫面

        提示

        如果延伸模組未出現在 [已安裝] 清單中,請嘗試重新開機 Visual Studio Code。

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

  • 若要使用執行 JavaScript 的 內嵌程式碼作業動作 ,請安裝 Node.js 版本6.x、11. x.x. x. x. x. x. x. x. x. x. x. x. x。

    提示

    如 Windows,請下載 MSI 版本。 如果您改為使用 ZIP 版本,您必須使用適用于您作業系統的 PATH 環境變數,手動使 Node.js 可供使用。

  • 若要在本機執行以 webhook 為基礎的觸發程式和動作,例如內建的 HTTP webhook 觸發程式,在 Visual Studio Code 中,您必須設定回呼 URL 的轉送

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

  • 如果您使用支援Application Insights的設定來建立邏輯應用程式資源,您可以選擇性地為您的邏輯應用程式啟用診斷記錄和追蹤。 當您建立邏輯應用程式時,或在部署之後,您可以這麼做。 您必須有 Application Insights 的實例,但您可以在建立邏輯應用程式時或部署之後,事先建立此資源。

設定 Visual Studio Code

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

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

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

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

    3. 確認已選取 [ 自動檢查更新 ] 和 [ 自動更新 ]。

根據預設,會針對 Azure Logic Apps (Standard) 擴充功能啟用並設定下列設定:

  • Azure Logic Apps 標準: Project 運行 時間,其設定為版本 ~ 3

    注意

    這是使用 內嵌程式碼作業動作的必要版本。

  • Azure Logic Apps 標準:實驗性視圖管理員,可在 Visual Studio Code 中啟用最新的設計工具。 如果您在設計工具上遇到問題,例如拖放專案,請關閉此設定。

若要尋找並確認這些設定,請遵循下列步驟:

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

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

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

    顯示「Azure Logic Apps (標準) 」延伸 Visual Studio Code 設定的螢幕擷取畫面。

連線至您的 Azure 帳戶

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

    顯示 Visual Studio Code 活動列和選取的 Azure 圖示的螢幕擷取畫面。

  2. 在 Azure 窗格的 [ azure: Logic Apps] ([標準]) 上,選取 [登 入 azure]。 當 [Visual Studio Code authentication] 頁面出現時,請使用您的 Azure 帳戶登入。

    顯示 azure 窗格和針對 Azure 登入所選取連結的螢幕擷取畫面。

    登入之後,Azure 窗格會顯示您的 Azure 帳戶中的訂用帳戶。 如果您也有公開發行的延伸模組,您可以在 Logic Apps 區段中找到使用該延伸模組建立的任何邏輯應用程式,而不是 Logic Apps (標準) 區段。

    如果預期的訂用帳戶未出現,或您想要讓窗格只顯示特定的訂用帳戶,請遵循下列步驟:

    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] ([標準]) 上,選取 [建立新的 Project (] 圖示,以顯示資料夾和閃電) 。

    螢幕擷取畫面,顯示已選取 [建立新的 Project] 的 Azure 窗格工具列。

  4. 如果 Windows Defender 防火牆提示您授與的網路存取權 Code.exe ,也就是 Visual Studio Code,而針對 func.exe Azure Functions Core Tools,請選取 [私人網路],例如 [我的家用] 或 [工作網路] > 允許存取

  5. 流覽至您建立專案資料夾的位置,選取該資料夾,然後繼續進行。

    顯示 [選取資料夾] 對話方塊的螢幕擷取畫面,其中已選取新建立的專案資料夾和 [選取] 按鈕。

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

    螢幕擷取畫面,顯示已選取「具狀態工作流程」的工作流程範本清單。

  7. 提供工作流程的名稱,然後按 Enter 鍵。 這個範例會使用 Fabrikam-Stateful-Workflow 做為名稱。

    顯示 [建立新的具狀態工作流程 (3/4) ] 方塊和 [Fabrikam-具狀態工作流程] 作為工作流程名稱的螢幕擷取畫面。

    Visual Studio Code 完成建立您的專案,並在程式碼編輯器中開啟工作流程的 workflow.js 檔案。

    注意

    如果系統提示您選取如何開啟專案,如果您想要在目前的 Visual Studio Code 視窗中開啟專案,請選取 [在目前視窗中開啟] 。 若要開啟 Visual Studio Code 的新實例,請選取 [在新視窗中開啟]

  8. 在 [Visual Studio] 工具列中,開啟 [Explorer] 窗格(如果尚未開啟)。

    [Explorer] 窗格會顯示您的專案,現在包含自動產生的專案檔。 例如,專案的資料夾會顯示您的工作流程名稱。 在此資料夾中,檔案 workflow.js 包含工作流程的基礎 JSON 定義。

    顯示 [Explorer] 窗格的螢幕擷取畫面,其中包含專案資料夾、工作流程資料夾和「workflow.js開啟」檔案。

啟用內建連接器撰寫

您可以使用單一租使用者 Azure Logic Apps擴充性架構,針對您所需的任何服務建立自己的內建連接器。 類似于 Azure 服務匯流排和 SQL Server 等內建連接器,這些連接器會提供更高的輸送量、低延遲、本機連線能力,並以原生方式在與單一租使用者 Azure Logic Apps 執行時間相同的進程中執行。

撰寫功能目前僅適用于 Visual Studio Code,但預設不會啟用。 若要建立這些連接器,您必須先將您的專案從擴充功能套件組合型 (Node.js) 轉換為 NuGet 以套件為基礎的 ( .net) 。

重要

這個動作是您無法復原的單向操作。

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

    顯示的螢幕擷取畫面,顯示 [Explorer] 窗格,其中專案的快捷方式功能表從 [專案] 視窗中的空白區域開啟。

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

  3. 若要繼續,請檢查並遵循文章中的步驟, Azure Logic Apps 執行任何內建的連接器擴充性。

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

  1. 執行下列命令,以檢查電腦上已安裝的版本:

    ..\Users\{yourUserName}\dotnet --list-sdks

    如果您有 .NET Core SDK 5.x,此版本可能會讓您無法在設計工具中開啟邏輯應用程式的基礎工作流程定義。 您可以在專案的根資料夾中,global.js建立參考您的 .NET Core 運行 時間 3.x 版,而非3.1.201 的檔案,而不是卸載這個版本,例如:

    {
       "sdk": {
          "version": "3.1.8",
          "rollForward": "disable"
       }
    }
    

    重要

    請確定您已從 Visual Studio Code 內明確地在專案的根資料夾中新增 global.js 。 否則,設計工具將不會開啟。

  2. 展開工作流程的專案資料夾。 開啟檔案的快捷方式功能表上的 [ workflow.js ],然後選取 [ 在設計工具中開啟]。

    螢幕擷取畫面,顯示已選取 [在設計工具中開啟] 之檔案上 workflow.js的 [Explorer] 窗格和快捷方式視窗。

  3. 從 [ 在 azure 中啟用連接器 ] 清單中選取 [ 使用來自 azure 的連接器],其適用于 azure 中所有可用和部署的受控連接器,而不只是 azure 服務的連接器。

    顯示具有 [在 Azure 中啟用連接器] 清單的螢幕擷取畫面,並已選取 [使用 Azure 中的連接器]。

    注意

    無狀態工作流程目前僅支援 受管理連接器動作,這些連接器會部署在 Azure 中,而不支援觸發程式。 雖然您可以選擇在 Azure 中針對無狀態工作流程啟用連接器,但是設計工具不會顯示任何受管理的連接器觸發程式供您選取。

  4. 從 [ 選取訂 用帳戶] 清單中,選取要用於邏輯應用程式專案的 Azure 訂用帳戶。

    螢幕擷取畫面,顯示 [選取訂用帳戶] 方塊和您選取的訂用帳戶的 [瀏覽器] 窗格。

  5. 從資源群組清單中,選取 [ 建立新的資源群組]。

    顯示 [Explorer] 窗格和 [資源群組] 清單的螢幕擷取畫面,並已選取 [建立新的資源群組]。

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

    顯示 [Explorer 窗格] 和 [資源組名] 方塊的螢幕擷取畫面。

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

    顯示已選取 [位置] 清單和 [美國中西部] 的 [Explorer] 窗格螢幕擷取畫面。

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

    注意

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

    如果設計工具未開啟,請檢查 [疑難排解] 區段, 設計師無法開啟

    設計工具出現之後,[ 選擇] 操作 提示會出現在設計工具上,並且預設為選取,這會顯示 [ 加入動作 ] 窗格。

    顯示工作流程設計工具的螢幕擷取畫面。

  8. 接下來,在您的工作流程中 新增觸發程式和動作

新增觸發程式和動作

開啟設計工具之後,[ 選擇 作業提示] 會出現在設計工具上,並且預設為選取狀態。 您現在可以藉由新增觸發程式和動作來開始建立您的工作流程。

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

  • 內建的 要求觸發程式會在收到 HTTP 要求時 接收傳入的呼叫或要求,並建立其他服務或邏輯應用程式可以呼叫的端點。

  • Office 365 的 Outlook 動作,請 傳送電子郵件

  • 內建的 回應動作,您可以用來傳送回復,並將資料傳回給呼叫端。

新增「要求」觸發程序

  1. 在設計工具旁的 [ 新增觸發 程式] 窗格中,確定已 選取 [ 內建 ],讓您可以選取以原生方式執行的觸發程式。

  2. 在 [ 選擇 作業搜尋] 方塊中,輸入 when a http request ,然後選取在 收到 HTTP 要求時 所命名的內建要求觸發程式。

    顯示工作流程設計工具和 [新增觸發程式] 窗格的螢幕擷取畫面,其中已選取 [收到 HTTP 要求時] 觸發程式。

    當觸發程式出現在設計工具上時,觸發程式的詳細資料窗格會開啟,以顯示觸發程式的屬性、設定和其他動作。

    顯示工作流程設計工具的螢幕擷取畫面,其中已選取 [收到 HTTP 要求時] 觸發程式,並開啟 [觸發程式詳細資料] 窗格。

    提示

    如果 [詳細資料] 窗格未出現,請確定已在設計工具上選取觸發程式。

  3. 如果您需要從設計工具中刪除專案,請 遵循下列步驟,從設計工具中刪除專案

新增 Office 365 Outlook 動作

  1. 在設計工具中,于您加入的觸發程式底下,選取加號 (+) > 新增動作

    [ 選擇 作業提示] 會出現在設計工具上,然後重新開啟 [ 新增動作 ] 窗格,讓您可以選取下一個動作。

  2. 在 [ 新增動作 ] 窗格的 [ 選擇 作業搜尋] 方塊底下,選取 [ azure ],讓您可以針對部署在 azure 中的受控連接器選取動作。

    此範例會選取並使用 Office 365 Outlook 動作,傳送電子郵件 (V2)

    顯示工作流程設計工具的螢幕擷取畫面,並已選取 [新增動作] 窗格,Office 365 Outlook [傳送電子郵件] 動作。

  3. 在動作的詳細資料窗格中,選取 [登入],讓您能夠建立電子郵件帳戶的 連線

    顯示工作流程設計工具的螢幕擷取畫面,以及 [傳送電子郵件 (V2) ] 窗格,並選取 [登入]。

  4. 當 Visual Studio Code 提示您同意存取您的電子郵件帳戶時,請選取 [開啟]。

    顯示允許存取 Visual Studio Code 提示的螢幕擷取畫面。

    提示

    若要防止未來出現提示,請選取 [ 設定信任的網域 ],讓您可以將 [驗證] 頁面新增為信任的網域。

  5. 依照後續的提示進行登入、允許存取,並允許返回 Visual Studio Code。

    注意

    如果在您完成提示之前過了太多時間,驗證程式就會失敗,並會失敗。 在此情況下,請回到設計工具,然後再試一次登入以建立連接。

  6. 當 Azure Logic Apps (Standard) 延伸模組提示您同意存取您的電子郵件帳戶時,請選取 [開啟]。 遵循後續的提示以允許存取。

    顯示允許存取的延伸提示提示的螢幕擷取畫面。

    提示

    若要防止未來出現提示,請選取 [ 不要再詢問此延伸 模組]。

    Visual Studio Code 建立您的連線之後,某些連接器會顯示訊息 The connection will be valid for {n} days only 。 當您在 Visual Studio Code 中撰寫邏輯應用程式時,此時間限制只適用于持續時間。 部署之後,因為您的邏輯應用程式可以使用自動啟用 系統指派的受控識別,在執行時間進行驗證,所以不再適用此限制。 這個受控識別與您在建立連線時所使用的驗證認證或連接字串不同。 如果您停用這個系統指派的受控識別,連接將無法在執行時間運作。

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

  8. 在動作的詳細資料窗格中,于 [ 參數 ] 索引標籤上提供動作所需的資訊,例如:

    顯示工作流程設計工具的螢幕擷取畫面,其中包含 Office 365 Outlook [傳送電子郵件] 動作的詳細資料。

    屬性 必要 描述
    若要 電子郵件收件者,可以是您的電子郵件地址以供測試之用。 此範例使用虛構的電子郵件 sophiaowen@fabrikam.com
    主旨 An email from your example workflow 電子郵件主旨
    本文 Hello from your example workflow! 電子郵件內文內容

    注意

    如果您想要在 [設定靜態結果 或 [] 索引標籤上的 [詳細資料] 窗格中進行任何變更,請確定您已選取 [完成] 來認可這些變更,然後再切換索引標籤或將焦點變更至設計工具。 否則,Visual Studio Code 將不會保留您的變更。

  9. 在設計工具中,選取 [ 儲存]。

重要

若要在本機執行使用以 webhook 為基礎的觸發程式或動作(例如 內建的 HTTP webhook 觸發程式或動作)的工作流程,您必須藉由 設定 webhook 回呼 URL 的轉送來啟用這項功能。

啟用在本機執行的 webhook

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

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

使用 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. 執行下列命令,以開啟 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 的設計工具上,新增 HTTP + Webhook 觸發程式或動作。

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

    注意

    略過提示會導致警告出現,表示您必須提供轉送 URL,因此請選取 [ 設定],然後輸入 URL。 完成此步驟之後,您可能會加入的後續 webhook 觸發程式或動作不會再次出現提示。

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

    Visual Studio Code 將轉送 URL 新增至專案根資料夾中的檔案 local.settings.js 。 在 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",
          <...>
       }
    }
    

當您第一次啟動本機的偵錯工具或執行工作流程但未進行任何偵錯工具時,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.js 內設定 中斷點。 不需要其他設定。

目前只支援動作,而非觸發程式的中斷點。 每個動作定義都有下列中斷點位置:

  • 在顯示動作名稱的行上設定起始中斷點。 當這個中斷點在偵錯工具中叫用時,您可以在評估動作之前,先檢查該動作的輸入。

  • 在顯示動作右大括弧 (}) 的行上設定結束中斷點。 當這個中斷點在偵錯工具中發生時,您可以在動作執行完成之前,先檢查動作的結果。

若要加入中斷點,請遵循下列步驟:

  1. 開啟您想要進行偵錯工具之工作流程的 workflow.js

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

    當您啟動偵錯工具時,[執行] 視圖會出現在程式碼視窗的左側,而偵錯工具工具列則出現在頂端附近。

    注意

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

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

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

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

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

在本機執行、測試和調試

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

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

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

    [ 終端 機] 視窗隨即開啟,讓您可以檢查偵錯工具會話。

    注意

    如果您收到錯誤:「執行 preLaunchTask ' generateDebugSymbols ' 後有錯誤」,請參閱疑難排解一節, 無法啟動調試過程。

  3. 現在,在要求觸發程式上尋找端點的回呼 URL。

    1. 重新開啟 [Explorer] 窗格,讓您可以查看您的專案。

    2. 從檔案的快捷方式功能表上的 [ workflow.js ] 中,選取 [總覽]。

      螢幕擷取畫面,顯示已選取「總覽」之檔案 workflow.js的 [Explorer] 窗格和快捷方式視窗。

    3. 尋找 [ 回呼 url ] 值,它看起來類似下列範例要求觸發程式的 url:

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

      顯示工作流程總覽頁面與回呼 URL 的螢幕擷取畫面

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

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

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

      顯示已選取 [新增] 按鈕之 Postman 的螢幕擷取畫面

    2. 在 [建立 的] 窗格的 [ 建立區塊] 下,選取 [ 要求]。

    3. 在 [ 儲存要求 ] 視窗的 [ 要求名稱] 底下,提供要求的名稱,例如 Test workflow trigger

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

    5. 在 [所有集合] 下,為要建立的集合提供用來組織要求的名稱,按 enter,然後選取 [儲存到 <的集合名稱 >。 這個範例會使用 Logic Apps requests 做為集合名稱。

      在 [Postman] 中,會開啟 [要求] 窗格,讓您可以將要求傳送至要求觸發程式的回呼 URL。

      顯示 Postman 與開啟的要求窗格的螢幕擷取畫面

    6. 返回 Visual Studio Code。 從工作流程的 [總覽] 頁面,複製 [ 回呼 URL ] 屬性值。

    7. 返回 Postman。 在 [要求] 窗格中,接下來的 [方法] 清單(目前顯示 [ 取得 ] 作為預設要求方法),貼上您先前在 [位址] 方塊中複製的回呼 URL,然後選取 [ 傳送]。

      螢幕擷取畫面,顯示已選取 [傳送] 按鈕的 [位址] 方塊中的 Postman 和回呼 URL

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

      顯示 Outlook 的電子郵件的螢幕擷取畫面,如範例中所述

  5. 在 Visual Studio Code 中,返回您工作流程的 [總覽] 頁面。

    如果您已建立可設定狀態的工作流程,則在您傳送的要求觸發工作流程之後,[總覽] 頁面會顯示工作流程的執行狀態和歷程記錄。

    提示

    如果未出現執行狀態, 請選取 [ 重新整理] 以重新整理 [總覽] 頁面。 由於不符準則或找不到任何資料,而略過的觸發程式不會執行。

    顯示具有執行狀態和歷程記錄之工作流程總覽頁面的螢幕擷取畫面

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

    秘訣:如果您設定 診斷記錄,您可以取得任何發生之節流事件的相關資訊。

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

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

    等候中 因為先前仍在執行的工作流程實例,所以執行尚未啟動或暫停。
  6. 若要檢查特定執行中每個步驟的狀態以及步驟的輸入和輸出,請選取該執行的省略號 (...) 按鈕,然後選取 [ 顯示執行]。

    顯示工作流程執行歷程記錄資料列的螢幕擷取畫面,其中包含省略號按鈕並選取 [顯示執行]

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

    顯示工作流程執行中的每個步驟及其狀態的螢幕擷取畫面

    注意

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

    以下是工作流程中每個步驟可能具有的狀態:

    動作狀態 描述
    已中止 動作已停止或未完成,因為發生外部問題,例如系統中斷或已過期的 Azure 訂用帳戶。
    取消 動作正在執行,但收到取消要求。
    失敗 動作失敗。
    執行中 動作目前正在執行。
    已略過 因為前一個動作失敗,所以已略過動作。 動作的 runAfter 條件需要先前的動作成功完成,才能執行目前的動作。
    已成功 動作成功。
    成功但重試 動作已成功,但只在一或多次重試後才會成功。 若要檢查重試歷程記錄,請在 [執行歷程記錄詳細資料] 視圖中選取該動作,讓您可以查看輸入和輸出。
    逾時 因為該動作的設定所指定的超時限制,所以已停止動作。
    等候中 適用于正在等候呼叫端輸入要求的 webhook 動作。
  7. 若要檢查每個步驟的輸入和輸出,請選取您要檢查的步驟。

    顯示工作流程中每個步驟的狀態,再加上展開 [傳送電子郵件] 動作中之輸入和輸出的螢幕擷取畫面

  8. 若要進一步檢查該步驟的原始輸入和輸出,請選取 [ 顯示原始輸入 ] 或 [ 顯示原始輸出]。

  9. 若要停止調試會話,請在 [ 執行 ] 功能表上選取 [ 停止調試 ] (Shift + F5) 。

傳迴響應

若要將回應傳回給將要求傳送至邏輯應用程式的呼叫端,您可以針對以要求觸發程式開頭的工作流程,使用內建的 回應動作

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

    [ 選擇 作業提示] 會出現在設計工具上,然後重新開啟 [ 新增動作 ] 窗格,讓您可以選取下一個動作。

  2. 在 [ 新增動作 ] 窗格的 [ 選擇動作 ] 搜尋方塊下方,確定已選取 [ 內建 ]。 在搜尋方塊中,輸入 response ,然後選取 回應 動作。

    顯示已選取回應動作之工作流程設計工具的螢幕擷取畫面。

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

    顯示工作流程設計工具的螢幕擷取畫面,其中顯示 [回應] 動作的 [詳細資料] 窗格,並將 [主體] 屬性設定為 [傳送電子郵件] 動作的 [主體] 屬性值。

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

    此範例會傳回 [傳送電子郵件] 動作輸出的 主體 屬性值。

    1. 在 [ 主體 ] 屬性方塊內按一下,以顯示動態內容清單,並顯示上述觸發程式中的可用輸出值和工作流程中的動作。

      螢幕擷取畫面:顯示 [回應] 動作的詳細資料窗格,並將滑鼠指標放在 "Body" 屬性內,以便顯示動態內容清單。

    2. 在動態內容清單的 [ 傳送電子郵件] 底下,選取 [ 主體]。

      顯示開啟動態內容清單的螢幕擷取畫面。 在清單中的 [傳送電子郵件] 標頭下,已選取 [內文] 輸出值。

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

      顯示工作流程中每個步驟的狀態,再加上展開 [回應] 動作中的輸入和輸出的螢幕擷取畫面。

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

重新測試您的邏輯應用程式

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

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

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

  3. 如果您已建立可設定狀態的工作流程,請在工作流程的 [總覽] 頁面上,檢查最近一次執行的狀態。 若要在該回合中查看每個步驟的狀態、輸入和輸出,請選取該執行的省略號 (...) 按鈕,然後選取 [ 顯示執行]。

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

    顯示已更新工作流程中每個步驟的狀態,再加上展開 [回應] 動作中之輸入和輸出的螢幕擷取畫面。

  4. 若要停止調試會話,請在 [ 執行 ] 功能表上選取 [ 停止調試 ] (Shift + F5) 。

尋找用來存取防火牆的功能變數名稱

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

若要尋找這些連線 (Fqdn) 的完整功能變數名稱,請依照下列步驟執行:

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

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

    此範例 connections.js 檔案包含兩個連線、一個 AS2 連接,以及具有下列值的 Office 365 連線 connectionRuntimeUrl

    • 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 儲存體帳戶,類似于函數應用程式需求。 或者,您可以將邏輯應用程式發佈至先前部署的 邏輯應用程式, (標準) 資源,這會覆寫該邏輯應用程式。

邏輯應用程式 (Standard) 資源類型的部署需要您在部署期間選取的主控方案和定價層。 如需詳細資訊,請參閱 主控方案和定價層

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

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

  2. 在 [ Azure: Logic Apps] (標準) ] 窗格工具列上,選取 [ 部署至邏輯應用程式]。

    螢幕擷取畫面,顯示已選取 [部署至邏輯應用程式] 的 [Azure: Logic Apps (標準) ] 窗格和窗格工具列。

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

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

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

    此範例會繼續 建立新的邏輯應用程式, (Azure Advanced 中的標準)

    顯示 [Azure: Logic Apps (Standard) ] 窗格的螢幕擷取畫面,其中已選取 [在 Azure 中建立新的邏輯應用程式 (標準) ] 的清單。

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

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

      顯示 [Azure: Logic Apps (標準) ] 窗格的螢幕擷取畫面,以及提供新邏輯應用程式建立名稱的提示。

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

      顯示「Azure: Logic Apps (標準) 」窗格的螢幕擷取畫面,以及「建立新的 App Service 計畫」的提示,或選取現有的 App Service 方案。

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

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

    4. 為了達到最佳效能,請選取與您的專案相同的資源群組進行部署。

      注意

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

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

      顯示 [Azure: Logic Apps (標準) ] 窗格的螢幕擷取畫面,以及建立或選取儲存體帳戶的提示。

    6. 如果您的邏輯應用程式建立和部署設定支援使用Application Insights,您可以選擇性地為您的邏輯應用程式啟用診斷記錄和追蹤。 當您從 Visual Studio Code 或部署之後部署邏輯應用程式時,您可以這麼做。 您必須有 Application Insights 的實例,但您可以在部署邏輯應用程式時或部署之後,事先建立此資源。

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

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

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

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

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

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

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

        提示

        您可以檢查觸發程式和動作名稱是否正確地出現在 Application Insights 實例中。

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

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

        3. 檢查顯示在地圖中的作業名稱。

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

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

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

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

        每個事件種類都會指派給嚴重性層級。 例如, Trace 層級會捕捉最詳細的訊息,而 Information 層級會在您的工作流程中捕獲一般活動,例如當您的邏輯應用程式、工作流程、觸發程式和動作開始和停止時。 下表描述嚴重性層級和其追蹤類型:

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

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

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

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

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

        如果 logging 物件未包含 logLevel 包含屬性的物件 Host.Triggers.Workflow ,請加入這些專案。 將屬性設為您想要的追蹤類型的嚴重性層級,例如:

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

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

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

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

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

    顯示已成功完成部署至 Azure 之訊息的螢幕擷取畫面。

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

接下來,您可以瞭解如何執行下列工作:

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

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

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

  2. 在 azure 窗格的 [ azure: Logic Apps] ([標準]) 上,選取 Azure Logic Apps) 的 [建立工作流程 (] 圖示。

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

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

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

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

在 Visual Studio Code 中,您可以在 Azure 訂用帳戶中查看所有已部署的邏輯應用程式,不論它們是原始 Logic Apps邏輯應用程式 (標準) 資源類型,然後選取可協助您管理這些邏輯應用程式的工作。 不過,若要存取這兩種資源類型,您同時需要 Azure Logic AppsAzure Logic Apps (標準) 擴充功能來進行 Visual Studio Code。

  1. 選取左側工具列上的 Azure 圖示。 在 [ Azure: Logic Apps (標準) ] 窗格中,展開您的訂用帳戶,其中會顯示該訂用帳戶的所有已部署邏輯應用程式。

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

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

    注意

    停止邏輯應用程式和刪除邏輯應用程式作業會以不同的方式影響工作流程實例。 如需詳細資訊,請參閱 停止邏輯應用程式的考慮 ,以及 刪除邏輯應用程式的考慮

    顯示 Visual Studio Code 的螢幕擷取畫面,其中顯示已開啟的「Azure Logic Apps (標準) 」擴充功能窗格和已部署的工作流程。

  3. 若要查看邏輯應用程式中的所有工作流程,請展開您的邏輯應用程式,然後展開名為「 工作流程」的節點。

  4. 若要查看特定工作流程,請開啟工作流程的快捷方式功能表,然後選取 [ 在設計 工具中開啟],這會在唯讀模式中開啟工作流程。

    若要編輯工作流程,您可以使用下列選項:

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

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

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

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

    顯示 Visual Studio Code 中邏輯應用程式之 Azure 入口網站頁面的螢幕擷取畫面。

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

    顯示 Azure 入口網站和搜尋列的螢幕擷取畫面,其中顯示已部署邏輯應用程式的搜尋結果(顯示為已選取)。

停止邏輯應用程式的考慮

停止邏輯應用程式會以下列方式影響工作流程實例:

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

  • Logic Apps 服務不會建立或執行新的工作流程實例。

  • 下次符合條件時,不會引發觸發程式。 不過,觸發程式狀態會記住邏輯應用程式停止的時間點。 因此,如果您重新開機邏輯應用程式,則會在上次執行之後引發所有未處理專案的觸發程式。

    若要停止在上一次執行之後引發未處理專案的觸發程式,請在重新開機邏輯應用程式之前,先清除觸發程式狀態:

    1. 在 Visual Studio Code 中,選取左側工具列上的 Azure 圖示。
    2. 在 [ Azure: Logic Apps (標準) ] 窗格中,展開您的訂用帳戶,其中會顯示該訂用帳戶的所有已部署邏輯應用程式。
    3. 展開您的邏輯應用程式,然後展開名為「 工作流程」的節點。
    4. 開啟工作流程,並編輯該工作流程觸發程式的任何部分。
    5. 儲存您的變更。 此步驟會重設觸發程式的目前狀態。
    6. 針對每個工作流程重複執行。
    7. 當您完成時,請重新開機邏輯應用程式。

刪除邏輯應用程式的考慮

刪除邏輯應用程式會以下列方式影響工作流程實例:

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

  • Logic Apps 服務不會建立或執行新的工作流程實例。

  • 如果您刪除工作流程,然後重新建立相同的工作流程,重新建立的工作流程將不會有與刪除的工作流程相同的中繼資料。 若要重新整理中繼資料,您必須重新儲存任何呼叫已刪除工作流程的工作流程。 如此一來,呼叫端會取得重新建立之工作流程的正確資訊。 否則,重新建立工作流程的呼叫將會失敗,並出現 Unauthorized 錯誤。 此行為也適用于在整合帳戶中使用成品的工作流程,以及呼叫 Azure 函式的工作流程。

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

從 Visual Studio Code 將邏輯應用程式部署至 Azure 入口網站之後,您可以在 Azure 訂用帳戶中查看所有已部署的邏輯應用程式,不論它們是原始的 Logic Apps 資源類型或 邏輯應用程式 (標準) 資源類型。 目前,每個資源類型都會以個別類別的形式在 Azure 中組織及管理。 若要尋找邏輯 應用程式 (標準) 資源類型的邏輯應用程式,請遵循下列步驟:

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

    顯示 [邏輯應用程式] 搜尋文字的 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 專案中,展開名為 workflow designtime 的資料夾,然後開啟檔案 local.settings.js

  2. 加入 Workflows.{yourWorkflowName}.operationOptions 屬性,並將值設定為 WithStatelessRunHistory ,例如:

    Windows

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

    macOS 或 Linux

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=fabrikamstorageacct; \
              AccountKey=<access-key>;EndpointSuffix=core.windows.net",
          "FUNCTIONS_WORKER_RUNTIME": "dotnet",
          "Workflows.{yourWorkflowName}.OperationOptions": "WithStatelessRunHistory"
       }
    }
    
  3. 若要在完成時停用執行歷程記錄,請將 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 ] 窗格中,選取 [ View Application Insights data]。

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

從設計工具中刪除專案

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

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

  • 選取專案,然後按下 delete 鍵。 請選取 [確定] 確認。

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

    螢幕擷取畫面,其中顯示已開啟的 [詳細資料] 窗格以及 [選取的省略號] 按鈕和 [刪除] 命令在設計工具上選取的專案。

    提示

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

針對錯誤和問題進行疑難排解

設計工具無法開啟

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

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

  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 { 您的使用者名稱} \AppData\Local\Temp\Functions\ExtensionBundles,然後重試在設計工具中開啟檔案 workflow.js

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

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

此外,除非您在建立邏輯應用程式時啟用或選取了 [使用 azure 中的連接器],否則 azure 函數作業 連接器和動作不會出現在設計工具選擇器中。 如果您在應用程式建立時未啟用 Azure 部署的連接器,您可以在 Visual Studio Code 中從您的專案啟用它們。 開啟快捷方式功能表上的 [ workflow.js ],然後選取 [ 使用 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.js

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

觸發程式或動作上出現「400錯誤的要求」

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

若要解決此問題並針對較長的 URI 進行調整,請 UrlSegmentMaxCount UrlSegmentMaxLength 遵循下列步驟,在您的電腦上編輯和登錄機碼。 本主題將說明這些金鑰的預設值, Http.sys Windows 的登錄設定

重要

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

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

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

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

  4. 在右窗格中,尋找和登錄機 UrlSegmentMaxCount UrlSegmentMaxLength 碼。

  5. 將這些索引鍵值增加到足夠的空間,讓 Uri 可以容納您要使用的名稱。 如果這些機碼不存在,請依照下列步驟將它們新增至 Parameters 資料夾:

    1. 參數 快捷方式功能表中,選取 [ > 的 DWORD (32-位) 值]。

    2. 在出現的編輯方塊中,輸入 UrlSegmentMaxCount 做為新的索引鍵名稱。

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

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

    5. 若要加入 UrlSegmentMaxLength 金鑰值,請重複這些步驟。

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

    顯示登錄編輯程式的螢幕擷取畫面。

  6. 當您準備好時,請重新開機電腦,變更才會生效。

無法啟動調試過程

當您嘗試啟動偵測會話時,您會收到錯誤:「執行 preLaunchTask ' generateDebugSymbols ' 之後有錯誤」。 若要解決此問題,請編輯專案中的 tasks.js ,以略過符號產生。

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

  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 (Standard) 延伸模組的體驗!