共用方式為


快速入門:建立 PowerShell Durable Functions 應用程式

使用 Durable Functions (Azure Functions 的功能) 在無伺服器環境中撰寫具狀態函式。 您可以在 Visual Studio Code 中安裝 Azure Functions 延伸模組來安裝 Durable Functions。 延伸模組會管理應用程式中的狀態、檢查點和重新啟動。

在本快速入門中,您會使用 Visual Studio Code 中的 Durable Functions 延伸模組,在 Azure Functions 中本機建立及測試「Hello World」Durable Functions 應用程式。 此 Durable Functions 應用程式會協調對其他函式的呼叫並將其鏈結在一起。 接著,您會將函式程式碼發佈至 Azure。 您所使用的工具可以透過 Visual Studio Code 延伸模組取得。

在 Azure 中執行 Durable Functions 應用程式。

必要條件

若要完成本快速入門,您需要:

如果您沒有 Azure 訂閱,請在開始之前,先建立 Azure 免費帳戶

建立本機專案

在這一節中,您會使用 Visual Studio Code 來建立本機 Azure Functions 專案。

  1. 在 Visual Studio Code 中選取 F1 (或選取 Ctrl/Cmd+Shift+P),以開啟命令選擇區。 在提示 (>),輸入然後選取 [Azure Functions:建立新專案]

    顯示 [建立功能命令] 的螢幕擷取畫面。

  2. 選取瀏覽。 在 [選取資料夾] 對話框中,移至要用於您專案的資料夾,然後選擇 [選取]

  3. 依照提示提供下列資訊:

    提示 動作 描述
    為您的函數應用程式專案選取語言 選取 [PowerShell] 建立本機 PowerShell Functions 專案。
    選取版本 選取 [Azure Functions v4] 您只會在尚未安裝 Core Tools 時看到此選項。 在此情況下,Core Tools 會在您第一次執行應用程式時安裝。
    為專案的第一個函式選取範本 選取 [暫時略過]
    選取您開啟專案的方式 選取 [在目前視窗中開啟] 在您選取的資料夾中開啟 Visual Studio Code。

如果需要建立專案,Visual Studio Code 就會安裝 Azure Functions Core Tools。 其也會在資料夾中建立函式應用程式專案。 此專案包含 host.jsonlocal.settings.json 組態檔。

此外,也會在根資料夾中建立 package.json 檔案。

將函式應用程式設定為使用 PowerShell 7

開啟 local.settings.json 檔案,並確認名為 FUNCTIONS_WORKER_RUNTIME_VERSION 的設定已設定為 ~7。 如果遺漏,或設定為另一個值,請更新檔案內容。

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "powershell",
    "FUNCTIONS_WORKER_RUNTIME_VERSION" : "~7"
  }
}

建立您的函式

最基本的 Durable Functions 應用程式有三個函式:

  • 協調器函式:用於協調其他函式的工作流程。
  • 活動函式:由協調器函式呼叫的函式,可執行工作並選擇性地傳回值。
  • 用戶端函式:可啟動協調器函式的一般 Azure 函式。 此範例會使用 HTTP 觸發的函式。

協調器函式

使用範本在您的專案中建立 Durable Functions 應用程式程式碼。

  1. 在命令選擇區中,輸入而後選取 Azure Functions:建立函式

  2. 依照提示提供下列資訊:

    提示 動作 描述
    選取函式的範本 輸入 Durable Functions 協調流程 建立 Durable Functions 應用程式協調流程。
    提供函式名稱 輸入 HelloOrchestrator 耐久型函式的名稱。

您已新增協調器來協調活動函式。 開啟 HelloOrchestrator/run.ps1 以查看協調器函式。 Invoke-ActivityFunction Cmdlet 的每次呼叫都會叫用名為 Hello 的活動函式。

接下來,您需要新增參考的 Hello 活動函式。

活動函式

  1. 在命令選擇區中,輸入而後選取 [Azure Functions:建立函式]

  2. 依照提示提供下列資訊:

    提示 動作 描述
    選取函式的範本 選取 [Durable Functions 活動] 建立活動函式。
    提供函式名稱 輸入 Hello 活動函式的名稱。

您已新增協調器所叫用的 Hello 活動函式。 開啟 Hello/run.ps1,以查看其是否接受名稱作為輸入並傳回問候語。 活動函式是您將執行動作的地方,例如進行資料庫呼叫或執行計算。

最後,您會新增一個啟動協調流程的 HTTP 觸發函式。

用戶端函式 (HTTP 入門)

  1. 在命令選擇區中,輸入而後選取 [Azure Functions:建立函式]

  2. 依照提示提供下列資訊:

    提示 動作 描述
    選取函式的範本 選取 Durable Functions HTTP 入門 建立 HTTP 入門函式。
    提供函式名稱 輸入 HttpStart 活動函式的名稱。
    授權等級 選取 [匿名] 基於示範目的,這個值允許呼叫函式而不使用驗證。

您已新增可啟動協調流程的 HTTP 觸發函式。 開啟 HttpStart/run.ps1,以檢視是否使用 Start-NewOrchestration Cmdlet 來啟動新的協調流程。 然後,該函式會使用 New-OrchestrationCheckStatusResponse Cmdlet 傳回 HTTP 回應,其中包含可用於監視和管理新協調流程的 URL。

您現在有一個可在本機執行並部署至 Azure 的 Durable Functions 應用程式。

注意

下一個版本的 Durable Functions PowerShell 應用程式現在處於預覽狀態。 請從 PowerShell 資源庫下載。 了解更多資訊,以及了解如何在獨立 PowerShell SDK 指南中試用。 您可以遵循本指南的安裝一節,取得可與本快速入門搭配使用的指示,以加以啟用。

在本機測試函式

Azure Functions Core Tools 提供您在本機開發電腦上執行 Azure Functions 專案的功能。 第一次在 Visual Studio 中啟動函式時,系統會提示您安裝這些工具。

  1. 若要測試您的函式,請在 Hello 活動函式程式碼 (在 Hello/run.ps1) 中設定中斷點。 選取 F5 或在命令選擇區中選取 [偵錯:開始偵錯],以啟動函式應用程式專案。 Core Tools 的輸出會出現在終端機面板中。

    注意

    如需有關偵錯的詳細資訊,請參閱 Durable Functions 診斷

  2. Durable Functions 需要執行 Azure 儲存體帳戶。 當 Visual Studio Code 提示您選取儲存體帳戶時,請選擇 [選取儲存體帳戶]

    顯示 [建立儲存體帳戶] 的螢幕擷取畫面。

  3. 出現提示時提供下列資訊,即可在 Azure 中建立新的儲存體帳戶。

    提示 動作 描述
    選取訂用帳戶 選取您的訂用帳戶名稱。 您的 Azure 訂閱。
    選取儲存體帳戶 選取 [建立新儲存體帳戶]
    輸入新儲存體帳戶的名稱 輸入唯一名稱。 要建立的儲存體帳戶的名稱。
    選取資源群組 輸入唯一名稱。 要建立之資源群組的名稱。
    選取位置 選取 Azure 區域。 選取您附近的區域。
  4. 在終端機面板中,複製 HTTP 觸發函式的 URL 端點。

    Azure 本地輸出的螢幕擷取畫面。

  5. 使用瀏覽器或 HTTP 測試工具,將 HTTP POST 要求傳送至 URL 端點。

    將最後一個區段取代為協調器函式的名稱 (HelloOrchestrator)。 此 URL 應類似於 http://localhost:7071/api/orchestrators/HelloOrchestrator

    回應是 HTTP 函式的初始結果。 其可讓您知道長期協調流程已成功啟動。 其尚未顯示協調流程的最終結果。 回應包含一些實用的 URL。 現在,請查詢協調流程的狀態。

  6. 複製 statusQueryGetUri 的 URL 值,並將其貼在瀏覽器的網址列中,然後執行要求。 您也可以繼續使用 HTTP 測試工具來發出 GET 要求。

    此要求會查詢協調流程執行個體的狀態。 您必須取得最終回應,內容指出執行個體已完成,並包含耐久函數的輸出或結果。 看起來像這個範例:

    {
        "name": "HelloOrchestrator",
        "instanceId": "9a528a9e926f4b46b7d3deaa134b7e8a",
        "runtimeStatus": "Completed",
        "input": null,
        "customStatus": null,
        "output": [
            "Hello Tokyo!",
            "Hello Seattle!",
            "Hello London!"
        ],
        "createdTime": "2020-03-18T21:54:49Z",
        "lastUpdatedTime": "2020-03-18T21:54:54Z"
    }
    
  7. 若要在 Visual Studio Code 中停止偵錯,選取 [Shift+F5]。

驗證函式在本機電腦上正確執行之後,就可以將專案發佈到 Azure。

登入 Azure

您必須先登入 Azure 後,才能建立 Azure 資源或發佈應用程式。

  1. 如果您尚未登入,請在 [活動列] 中選取 [Azure] 圖示。 然後在 [資源] 下,選取 [登入 Azure]

    在 Visual Studio Code 中登入 Azure 視窗的螢幕擷取畫面。

    如果您已登入,而且可以看到現有的訂閱,請移至下一節。 如果您尚未擁有 Azure 帳戶,請選取 [建立 Azure 帳戶]。 學生可以選取 [建立 Microsoft Azure 學生版帳戶]

  2. 在瀏覽器中出現提示時,選取您的 [Azure 帳戶],並使用您的 Azure 帳戶認證登入。 如果您建立新的帳戶,可以在帳戶建立之後登入。

  3. 成功登入之後,您可以關閉新的瀏覽器視窗。 屬於您 Azure 帳戶的訂用帳戶會顯示在側邊欄中。

在 Azure 中建立函數應用程式

在此區段中,您會在 Azure 訂用帳戶中建立函式應用程式和相關的資源。 根據預設行為,系統會為您做出許多資源建立決策。 若要進一步控制已建立的資源,您必須改為使用進階選項建立函數應用程式

  1. 在 Visual Studio Code 中,選取 F1 以開啟命令選擇區。 在提示 (>) 中,輸入然後選取 [Azure Functions:在 Azure 中建立函式應用程式]

  2. 依照提示提供下列資訊:

    提示 動作
    選取訂用帳戶 選取要使用的 Azure 訂用帳戶。 當您只有一個訂用帳戶顯示在 [資源] 底下時,就不會看到此提示。
    輸入函數應用程式的全域唯一名稱 輸入在 URL 路徑中有效的名稱。 您輸入的名稱會進行驗證,以確定該名稱在 Azure Functions 中是唯一的。
    選取執行階段堆疊 選取您目前在本機執行的語言版本。
    選取新資源的位置 選取 Azure 區域。 若要獲得較佳的效能,請選取您附近的 [區域]

    在 [Azure:活動記錄] 面板中,Azure 延伸模組會顯示在 Azure 中建立的個別資源狀態。

    顯示 Azure 資源建立記錄的螢幕擷取畫面。

  3. 建立函式應用程式時,在您的 Azure 訂用帳戶中會建立下列相關資源。 資源會根據您為函式應用程式輸入的名稱來命名。

    • 資源群組,這是相關資源的邏輯容器。
    • 標準 Azure 儲存體帳戶,其可維護專案的狀態和其他資訊。
    • 函數應用程式,其提供執行函式程式碼的環境。 函數應用程式可讓您將函式以邏輯單位分組,方便您在相同的主控方案中管理、部署及共用資源。
    • Azure App Service 方案,其定義函式應用程式的基礎主機。
    • 連線至函式應用程式的 Application Insights 執行個體,可追蹤函式在應用程式中的使用情況。

    建立函式應用程式並套用部署套件之後,即會顯示通知。

    提示

    根據預設,系統會根據您為函數應用程式輸入的名稱來建立函數應用程式所需的 Azure 資源。 根據預設,資源會以在相同的新資源群組中的函式應用程式來建立。 如果您想要自訂相關聯資源的名稱或重複使用現有的資源,請使用進階建立選項來發佈專案

將專案部署至 Azure

重要

部署至現有的函數應用程式一律會覆寫該應用程式在 Azure 中的內容。

  1. 在命令選擇區中,輸入並選取 [Azure Functions:部署至函式應用程式]

  2. 選取您剛才建立的函數應用程式。 當系統提示您覆寫先前的部署時,請選取 [部署],將函式程式碼部署至新的函數應用程式資源。

  3. 部署完成時,選取 [檢視輸出] 以檢視建立和部署結果,包括您所建立的 Azure 資源。 如果您錯過通知,請選取右下角的鈴鐺圖示,以再次查看。

    [檢視輸出] 視窗的螢幕擷取畫面。

在 Azure 中測試您的函式

  1. 從輸出面板中複製 HTTP 觸發程序的 URL。 呼叫 HTTP 觸發函式的 URL 應採用下列格式:

    https://<functionappname>.azurewebsites.net/api/orchestrators/HelloOrchestrator

  2. 將 HTTP 要求的新 URL 貼到瀏覽器的網址列。 當您使用已發佈的應用程式時,您可以預期會取得在本機測試時取得的相同狀態回應。

您使用 Visual Studio Code 建立和發佈的 PowerShell Durable Functions 應用程式已可供使用。

清除資源

如果您不再需要為完成快速入門所建立的資源,若要避免 Azure 訂用帳戶中的相關成本,請刪除資源群組和所有相關資源。