Durable Functions 拡張機能とサンプルをインストールする (Azure Functions)Install the Durable Functions extension and samples (Azure Functions)

Azure Functions の Durable Functions 拡張機能は、NuGet パッケージ Microsoft.Azure.WebJobs.Extensions.DurableTask に提供されます。The Durable Functions extension for Azure Functions is provided in the NuGet package Microsoft.Azure.WebJobs.Extensions.DurableTask. この記事では、次の開発環境用のパッケージとサンプル セットをインストールする方法を示します。This article shows how to install the package and a set of samples for the following development environments:

  • Visual Studio 2017 (推奨)Visual Studio 2017 (Recommended)
  • Visual Studio CodeVisual Studio Code
  • Azure ポータルAzure portal

Visual Studio 2017Visual Studio 2017

現時点では、Durable Functions を使用するアプリを開発するための 最適なエクスペリエンスは Visual Studio が提供します。Visual Studio currently provides the best experience for developing apps that use Durable Functions. 開発した関数はローカルに実行でき、Azure に発行することもできます。Your functions can be run locally and can also be published to Azure. 空のプロジェクトまたはサンプル関数セットから始めることができます。You can start with an empty project or with a set of sample functions.

前提条件Prerequisites

サンプル関数から始めるStart with sample functions

  1. Visual Studio 用のサンプル アプリの .zip ファイルをダウンロードします。Download the Sample App .zip file for Visual Studio. NuGet 参照はサンプル プロジェクトに既に含まれているため、追加する必要はありません。You don't need to add the NuGet reference because the sample project already has it.
  2. Azure Storage Emulator バージョン 5.2 以降をインストールして実行します。Install and run Azure Storage Emulator version 5.2 or later. または、local.appsettings.json ファイルを実際の Azure Storage の接続文字列で更新できます。Alternatively, you can update the local.appsettings.json file with real Azure Storage connection strings.
  3. Visual Studio 2017 でプロジェクトを開きます。Open the project in Visual Studio 2017.
  4. このサンプルの実行方法については、関数チェーン - Hello シーケンス サンプルに記載されている手順から始めてください。For instructions on how to run the sample, start with Function chaining - Hello sequence sample. サンプルは、ローカルで実行することも Azure に発行することもできます。The sample can be run locally or published to Azure.

空のプロジェクトから始めるStart with an empty project

サンプルから始めるのと同じ手順に従いますが、.zip ファイルをダウンロードする代わりに次の手順に従います。Follow the same directions as for starting with the sample, but do the following steps instead of downloading the .zip file:

  1. Function App プロジェクトを作成します。Create a Function App project.
  2. [NuGet パッケージの管理] を使って NuGet パッケージ参照 Microsoft.Azure.WebJobs.Extensions.DurableTask v1.1.0-beta2 を検索し (このパッケージを検索するときは、[プレリリースを含める] をオンにしてください)、プロジェクトに追加します。Search for the following NuGet package reference using Manage Nuget Packages and add it to the project: Microsoft.Azure.WebJobs.Extensions.DurableTask v1.1.0-beta2 (check Include prerelease to search for this package)

Visual Studio CodeVisual Studio Code

Visual Studio Code では、すべての主要なプラットフォーム (Windows、macOS、Linux) をカバーするローカルの開発エクスペリエンスを提供します。Visual Studio Code provides a local development experience covering all major platforms - Windows, macOS, and Linux. 開発した関数はローカルに実行でき、Azure に発行することもできます。Your functions can be run locally and can also be published to Azure. 空のプロジェクトまたはサンプル関数セットから始めることができます。You can start with an empty project or with a set of sample functions.

前提条件Prerequisites

サンプル関数から始めるStart with sample functions

  1. Durable Functions リポジトリを複製します。Clone the Durable Functions repository.
  2. マシン上の C# スクリプトのサンプル フォルダーに移動します。Navigate on your machine to the C# script samples folder.
  3. コマンド プロンプト/ターミナル ウィンドウで次のコマンドを実行して、Azure Functions Durable Extension をインストールします。Install Azure Functions Durable Extension by running the following in a command prompt / terminal window:

    func extensions install -p Microsoft.Azure.WebJobs.Extensions.DurableTask -v 1.2.0-beta3
    
  4. コマンド プロンプト/ターミナル ウィンドウで次のコマンドを実行して、Azure Functions Twilio Extension をインストールします。Install Azure Functions Twilio Extension by running the following in a command prompt / terminal window:

    func extensions install -p Microsoft.Azure.WebJobs.Extensions.Twilio -v 3.0.0-beta4
    
  5. Azure Storage Emulator を実行するか、local.appsettings.json ファイルを実際の Azure Storage の接続文字列で更新します。Run Azure Storage Emulator or update the local.appsettings.json file with real Azure Storage connection string.
  6. Visual Studio Code でプロジェクトを開きます。Open the project in Visual Studio Code.
  7. このサンプルの実行方法については、関数チェーン - Hello シーケンス サンプルに記載されている手順から始めてください。For instructions on how to run the sample, start with Function chaining - Hello sequence sample. サンプルは、ローカルで実行することも Azure に発行することもできます。The sample can be run locally or published to Azure.
  8. コマンド プロンプト/ターミナルで次のコマンドを実行して、プロジェクトを開始します:Start the project by running in command prompt / terminal the following command: bash func host start

空のプロジェクトから始めるStart with an empty project

  1. コマンド プロンプト/ターミナルで、関数アプリをホストするフォルダーに移動します。In command prompt / terminal navigate to the folder that will host your function app.
  2. コマンド プロンプト/ターミナル ウィンドウで次のコマンドを実行して、Azure Functions Durable Extension をインストールします。Install the Azure Functions Durable Extension by running the following in a command prompt / terminal window:

    func extensions install -p Microsoft.Azure.WebJobs.Extensions.DurableTask -v 1.1.0-beta2
    
  3. 次のコマンドを実行して Function App プロジェクトを作成します。Create a Function App project by running the following command:

    func init
    
  4. Azure Storage Emulator を実行するか、local.appsettings.json ファイルを実際の Azure Storage の接続文字列で更新します。Run Azure Storage Emulator or update the local.appsettings.json file with real Azure Storage connection string.
  5. 次に、次のコマンドを実行して新しい関数を作成し、ウィザードの手順に従います。Next, create a new function by running the following command and follow the wizard steps:

    func new
    

    重要

    現時点で Durable Function テンプレートは使用できませんが、サポートされるオプションのいずれかで開始して、コードを変更できます。Currently the Durable Function template is not available but you can start with one of the supported options and then modify the code. 参照用に、オーケストレーション クライアントオーケストレーション トリガーアクティビティ トリガーのサンプルを使用してください。Use for reference the samples for Orchestration Client, Orchestration Trigger, and Activity Trigger.

  6. Visual Studio Code でプロジェクト フォルダーを開き、テンプレート コードを修正して続行します。Open the project folder in Visual Studio Code and continue by modifying the template code.

  7. コマンド プロンプト/ターミナルで次のコマンドを実行して、プロジェクトを開始します:Start the project by running in command prompt / terminal the following command: bash func host start

Azure ポータルAzure portal

必要に応じて、Durable Functions 開発で Azure ポータルを使用できます。If you prefer, you can use the Azure portal for Durable Functions development.

オーケストレーター関数を作成するCreate an orchestrator function

  1. functions.azure.com で関数アプリを新規作成します。Create a new function app at functions.azure.com.

  2. 関数アプリを 2.0 ランタイム バージョンを使用するように構成します。Configure the function app to use the 2.0 runtime version.

    Durable Functions 拡張機能は、1.X ランタイムと 2.0 ランタイムの両方で動作しますが、Azure Portal テンプレートは 2.0 ランタイムを対象にした場合にのみ使用できます。The Durable Functions extension works on both the 1.X runtime and the 2.0 runtime, but the Azure Portal templates are only available when targeting the 2.0 runtime.

  3. [カスタム関数を作成する] を選択して新しい関数を作成します。Create a new function by selecting "create your own custom function.".

  4. [言語][C#] に、[シナリオ][Durable Functions] に変更し、[Durable Functions Http Starter - C#](Durable Functions Http スターター - C#) テンプレートを選択します。Change the Language to C#, Scenario to Durable Functions and select the Durable Functions Http Starter - C# template.

  5. [拡張機能がインストールされていません] の下の [インストール] をクリックして、NuGet.org から拡張機能をダウンロードします。Under Extensions not installed, click Install to download the extension from NuGet.org.

  6. インストールが完了したら、オーケストレーション クライアント関数 ([Durable Functions Http Starter - C#](Durable Functions Http スターター - C#) テンプレートを選択して作成される "HttpStart") の作成に進みます。After the installation is complete, proceed with the creation of an orchestration client function – “HttpStart” that is created by selecting Durable Functions Http Starter - C# template.

  7. ここで、オーケストレーション関数 "HelloSequence"[Durable Functions Orchestrator - C#](Durable Functions オーケストレーター - C#) テンプレートから作成します。Now, create an orchestration function “HelloSequence” from Durable Functions Orchestrator - C# template.

  8. 最後に呼び出される関数は、[Durable Functions Activity - C#](Durable Functions アクティビティ - C#) テンプレートの "Hello" です。And the last function will be called “Hello” from Durable Functions Activity - C# template.

  9. "HttpStart" 関数に移動し、その URL をコピーします。Go to "HttpStart" function and copy its URL.

  10. Postman または cURL を使用して、Durable Function を呼び出します。Use Postman or cURL to call the durable function. テストする前に、URL {functionName} をオーケストレーター関数名 HelloSequence で置換します。Before testing, replace in the URL {functionName} with the orchestrator function name - HelloSequence. データは必要ありません、POST 動詞のみを使用します。No data is required, just use POST verb.

    curl -X POST https://{your function app name}.azurewebsites.net/api/orchestrators/HelloSequence
    
  11. 次に、"statusQueryGetUri" エンドポイントを呼び出し、Durable Function の現在の状態を確認しますThen, call the “statusQueryGetUri” endpoint and you see the current status of the Durable Function

        {
            "runtimeStatus": "Running",
            "input": null,
            "output": null,
            "createdTime": "2017-12-01T05:37:33Z",
            "lastUpdatedTime": "2017-12-01T05:37:36Z"
        }
    
  12. 状態が "完了"に変わるまで "statusQueryGetUri" エンドポイントの呼び出しを続けますContinue calling the “statusQueryGetUri” endpoint until the status changes to "Completed"

    {
            "runtimeStatus": "Completed",
            "input": null,
            "output": [
                "Hello Tokyo!",
                "Hello Seattle!",
                "Hello London!"
            ],
            "createdTime": "2017-12-01T05:38:22Z",
            "lastUpdatedTime": "2017-12-01T05:38:28Z"
        }
    

お疲れさまでした。Congratulations! 最初の Durable Function が Azure Portal で稼働しています。Your first durable function is up and running in Azure Portal!

次の手順Next steps