C# で最初の Durable Functions を作成するCreate your first durable function in C#

Durable Functions は、サーバーレス環境でステートフル関数を記述できる Azure Functions の拡張機能です。Durable Functions is an extension of Azure Functions that lets you write stateful functions in a serverless environment. この拡張機能は状態、チェックポイント、再起動を管理します。The extension manages state, checkpoints, and restarts for you.

この記事では、Visual Studio Code を使用して、"hello world" 永続関数をローカルで作成してテストする方法を学習します。In this article, you learn how to use Visual Studio Code to locally create and test a "hello world" durable function. この関数は、他の関数の呼び出しを調整し、連結します。This function orchestrates and chains-together calls to other functions. その後、関数コードを Azure に発行します。You then publish the function code to Azure. これらのツールは、VS Code の Azure Functions 拡張機能の一部として利用できます。These tools are available as part of the VS Code Azure Functions extension.

持続的関数が表示されている Visual Studio Code ウィンドウを示すスクリーンショット。

前提条件Prerequisites

このチュートリアルを完了するには、以下が必要です。To complete this tutorial:

  • Visual Studio Code をインストールします。Install Visual Studio Code.

  • 次の VS Code 拡張機能をインストールします。Install the following VS Code extensions:

  • 最新バージョンの Azure Functions Core Tools があることを確認します。Make sure you have the latest version of the Azure Functions Core Tools.

  • Durable Functions には Azure ストレージ アカウントが必要です。Durable Functions require an Azure storage account. Azure サブスクリプションが必要です。You need an Azure subscription.

  • バージョン 3.1 以降の .NET Core SDK がインストールされていることを確認します。Make sure that you have version 3.1 or a later version of the .NET Core SDK installed.

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。If you don't have an Azure subscription, create a free account before you begin.

ローカル プロジェクトを作成するCreate your local project

このセクションでは、Visual Studio Code を使用して、ローカル Azure Functions プロジェクトを作成します。In this section, you use Visual Studio Code to create a local Azure Functions project.

  1. Visual Studio Code で、F1 (または Ctrl/Cmd + Shift + P) キーを押してコマンド パレットを開きます。In Visual Studio Code, press F1 (or Ctrl/Cmd+Shift+P) to open the command palette. コマンド パレットで、Azure Functions: Create New Project... を検索して選択します。In the command palette, search for and select Azure Functions: Create New Project....

    関数プロジェクトを作成する

  2. プロジェクト用に空のフォルダーの場所を選択し、 [選択] を選択します。Choose an empty folder location for your project and choose Select.

  3. プロンプトに従って、次の情報を入力します。Following the prompts, provide the following information:

    PromptPrompt ValueValue 説明Description
    Select a language for your function app project (関数アプリ プロジェクトの言語を選択してください)Select a language for your function app project C#C# ローカル C# 関数プロジェクトを作成します。Create a local C# Functions project.
    Select a version (バージョンを選択してください)Select a version Azure Functions v3Azure Functions v3 このオプションが表示されるのは、Core Tools がまだインストールされていない場合だけです。You only see this option when the Core Tools aren't already installed. その場合、アプリの初回実行時に Core Tools がインストールされます。In this case, Core Tools are installed the first time you run the app.
    Select a template for your project's first function (プロジェクトの最初の関数のテンプレートを選択してください)Select a template for your project's first function 今はしないSkip for now
    Select how you would like to open your project (プロジェクトを開く方法を選択してください)Select how you would like to open your project 現在のウィンドウで開くOpen in current window 選択したフォルダーで VS Code を開き直します。Reopens VS Code in the folder you selected.

Azure Functions Core Tools は、必要に応じて Visual Studio Code によりインストールされます。Visual Studio Code installs the Azure Functions Core Tools, if needed. また、関数アプリ プロジェクトがフォルダーに作成されます。It also creates a function app project in a folder. このプロジェクトには、host.json および local.settings.json 構成ファイルが含まれています。This project contains the host.json and local.settings.json configuration files.

アプリに関数を追加するAdd functions to the app

次の手順では、テンプレートを使用してプロジェクト内に永続関数のコードを作成します。The following steps use a template to create the durable function code in your project.

  1. コマンド パレットで、Azure Functions: Create Function... を検索して選択します。In the command palette, search for and select Azure Functions: Create Function....

  2. プロンプトに従って、次の情報を入力します。Following the prompts, provide the following information:

    PromptPrompt ValueValue 説明Description
    Select a template for your function (関数のテンプレートを選択してください)Select a template for your function DurableFunctionsOrchestrationDurableFunctionsOrchestration Durable Functions オーケストレーションを作成しますCreate a Durable Functions orchestration
    Provide a function name (関数名を指定してください)Provide a function name HelloOrchestrationHelloOrchestration 関数が作成されるクラスの名前Name of the class in which functions are created
    Provide a namespace (名前空間を指定してください)Provide a namespace Company.FunctionCompany.Function 生成されるクラスの名前空間Namespace for the generated class
  3. VS Code でストレージ アカウント選択のプロンプトが表示されたら、 [ストレージ アカウントの選択] を選択します。When VS Code prompts you to select a storage account, choose Select storage account. プロンプトに従って次の情報を入力し、Azure で新しいストレージ アカウントを作成します。Following the prompts, provide the following information to create a new storage account in Azure.

    PromptPrompt ValueValue 説明Description
    サブスクリプションの選択Select subscription <お使いのサブスクリプションの名前>name of your subscription Azure サブスクリプションを選択します。Select your Azure subscription
    Select a storage account (ストレージ アカウントを選択する)Select a storage account 新しいストレージ アカウントの作成Create a new storage account
    Enter the name of the new storage account (新しいストレージ アカウントの名前を入力する)Enter the name of the new storage account <一意の名前>unique name 作成するストレージ アカウントの名前Name of the storage account to create
    リソース グループの選択Select a resource group <一意の名前>unique name 作成するリソース グループの名前Name of the resource group to create
    場所を選択します。Select a location リージョンregion 近くのリージョンを選択しますSelect a region close to you

新しい関数を含むクラスがプロジェクトに追加されます。A class containing the new functions is added to the project. また VS Code により、ストレージ アカウントの接続文字列が local.settings.json に追加され、Microsoft.Azure.WebJobs.Extensions.DurableTask NuGet パッケージへの参照が .csproj プロジェクトファイルに追加されます。VS Code also adds the storage account connection string to local.settings.json and a reference to the Microsoft.Azure.WebJobs.Extensions.DurableTask NuGet package to the .csproj project file.

新しい HelloOrchestration.cs ファイルを開いて内容を表示します。Open the new HelloOrchestration.cs file to view the contents. この永続関数は、次のメソッドを使用した単純な関数チェーンの例です。This durable function is a simple function chaining example with the following methods:

MethodMethod FunctionNameFunctionName 説明Description
RunOrchestrator HelloOrchestration 持続的オーケストレーションを管理します。Manages the durable orchestration. このケースでは、オーケストレーションが起動し、一覧が作成され、3 つの関数呼び出しの結果が一覧に追加されます。In this case, the orchestration starts, creates a list, and adds the result of three functions calls to the list. 3 つの関数呼び出しが完了すると、一覧が返されます。When the three function calls are complete, it returns the list.
SayHello HelloOrchestration_Hello 関数から hello が返されます。The function returns a hello. これが、オーケストレーションされるビジネス ロジックを含む関数です。It is the function that contains the business logic that is being orchestrated.
HttpStart HelloOrchestration_HttpStart オーケストレーションのインスタンスを開始し、チェック状態の応答を返す、HTTP によってトリガーされる関数An HTTP-triggered function that starts an instance of the orchestration and returns a check status response.

関数プロジェクトと Durable Functions を作成できたので、この関数をローカル コンピューターでテストすることができます。Now that you've created your function project and a durable function, you can test it on your local computer.

関数をローカルでテストするTest the function locally

Azure Functions Core Tools を使用すると、ローカルの開発用コンピューター上で Azure Functions プロジェクトを実行できます。Azure Functions Core Tools lets you run an Azure Functions project on your local development computer. Visual Studio Code から初めて関数を起動すると、これらのツールをインストールするよう求めるメッセージが表示されます。You're prompted to install these tools the first time you start a function from Visual Studio Code.

  1. 関数をテストするには、SayHello アクティビティの関数コードにブレークポイントを設定し、F5 キーを押して関数アプリ プロジェクトを開始します。To test your function, set a breakpoint in the SayHello activity function code and press F5 to start the function app project. Core Tools からの出力が ターミナル パネルに表示されます。Output from Core Tools is displayed in the Terminal panel.

    注意

    デバッグについて詳しくは、Durable Functions の診断に関する記事をご覧ください。Refer to the Durable Functions Diagnostics for more information on debugging.

  2. ターミナル パネルで、HTTP によってトリガーされる関数の URL エンドポイントをコピーします。In the Terminal panel, copy the URL endpoint of your HTTP-triggered function.

    Azure のローカル出力

  3. Postman または cURL のようなツールを使用して、HTTP POST 要求を URL エンドポイントに送信します。Using a tool like Postman or cURL, send an HTTP POST request to the URL endpoint.

    応答は、永続的なオーケストレーションが正常に開始されたことを示す HTTP 関数の最初の結果です。The response is the initial result from the HTTP function letting us know the durable orchestration has started successfully. これはまだオーケストレーションの最終的な結果ではありません。It is not yet the end result of the orchestration. 応答には、いくつかの便利な URL が含まれています。The response includes a few useful URLs. ここでは、オーケストレーションの状態を照会してみましょう。For now, let's query the status of the orchestration.

  4. statusQueryGetUri の URL 値をコピーし、ブラウザーのアドレス バーに貼り付け、要求を実行します。Copy the URL value for statusQueryGetUri and paste it in the browser's address bar and execute the request. また、引き続き Postman を使用して GET 要求を発行することもできます。Alternatively you can also continue to use Postman to issue the GET request.

    この要求によって、オーケストレーション インスタンスの状態が照会されます。The request will query the orchestration instance for the status. インスタンスが完了したことを示し、持続的な関数の出力または結果を含む、最終的な応答を受け取ります。You should get an eventual response, which shows us the instance has completed, and includes the outputs or results of the durable function. 次のように表示されます。It looks like:

    {
        "name": "HelloOrchestration",
        "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"
    }
    
  5. デバッグを停止するには、VS Code で Shift キーを押しながら F5 キー を押します。To stop debugging, press Shift + F5 in VS Code.

関数がローカル コンピューター上で正常に動作することを確認したら、プロジェクトを Azure に発行します。After you've verified that the function runs correctly on your local computer, it's time to publish the project to Azure.

Azure へのサインインSign in to Azure

アプリを発行するには、Azure にサインインしておく必要があります。Before you can publish your app, you must sign in to Azure.

  1. まだサインインしていない場合は、アクティビティ バーの Azure アイコンを選択し、 [Azure: Functions] 領域で、 [Azure にサインイン...] を選択します。アカウントがない場合は、 無料の Azure アカウントを作成する ことができます。If you aren't already signed in, choose the Azure icon in the Activity bar, then in the Azure: Functions area, choose Sign in to Azure.... If you don't already have one, you can Create a free Azure account. 学生は、 無料の Azure for Students アカウントを作成する ことができます。Students can create a free Azure account for Students.

    VS Code 内で Azure にサインインする

    既にサインインしている場合は、次のセクションに進んでください。If you're already signed in, go to the next section.

  2. ブラウザーでプロンプトが表示されたら、ご利用の Azure アカウントを選択し、その Azure アカウントの資格情報を使用してサインインします。When prompted in the browser, choose your Azure account and sign in using your Azure account credentials.

  3. 正常にサインインしたら、新しいブラウザー ウィンドウを閉じてかまいません。After you've successfully signed in, you can close the new browser window. ご利用の Azure アカウントに属しているサブスクリプションがサイド バーに表示されます。The subscriptions that belong to your Azure account are displayed in the Side bar.

Azure にプロジェクトを発行するPublish the project to Azure

このセクションでは、ご利用の Azure サブスクリプションに関数アプリと関連リソースを作成し、コードをデプロイします。In this section, you create a function app and related resources in your Azure subscription and then deploy your code.

重要

既存の関数アプリに発行すると、Azure のそのアプリのコンテンツが上書きされます。Publishing to an existing function app overwrites the content of that app in Azure.

  1. アクティビティ バーの Azure アイコンを選択し、 [Azure: Functions] 領域で、 [Deploy to function app](関数アプリにデプロイ) ボタンを選択します。Choose the Azure icon in the Activity bar, then in the Azure: Functions area, choose the Deploy to function app... button.

    プロジェクトを Azure に発行する

  2. プロンプトで、次の情報を入力します。Provide the following information at the prompts:

    • Select folder (フォルダーを選択してください) : ワークスペースのフォルダーを選択するか、関数アプリが格納されているフォルダーを参照します。Select folder: Choose a folder from your workspace or browse to one that contains your function app. 既に有効な関数アプリが開いている場合には、このプロンプトは表示されません。You won't see this if you already have a valid function app opened.

    • Select subscription (サブスクリプションを選択してください) : 使用するサブスクリプションを選択します。Select subscription: Choose the subscription to use. サブスクリプションが 1 つのみの場合、このプロンプトは表示されません。You won't see this if you only have one subscription.

    • Select function app in Azure (Azure で関数アプリを選択してください) : [- Create new Function App] を選択します。Select Function App in Azure: Choose - Create new Function App. (Advanced オプションはこの記事では取り上げません。選択しないでください。)(Don't choose the Advanced option, which isn't covered in this article.)

    • Enter a globally unique name for the function app (関数アプリのグローバルに一意の名前を入力します) : URL パスに有効な名前を入力します。Enter a globally unique name for the function app: Type a name that is valid in a URL path. 入力した名前は、Azure Functions 内での一意性を確保するために検証されます。The name you type is validated to make sure that it's unique in Azure Functions.

    • Select a location for new resources (新しいリソースの場所を選択してください) : パフォーマンスを向上させるために、お近くの リージョンを選択してください。Select a location for new resources: For better performance, choose a region near you.

  3. 完了すると、関数アプリ名に基づく名前を使用して、次の Azure リソースがサブスクリプションに作成されます。When completed, the following Azure resources are created in your subscription, using names based on your function app name:

    • リソース グループ。関連リソースの論理コンテナーです。A resource group, which is a logical container for related resources.
    • Standard Azure ストレージ アカウント。プロジェクトについての状態とその他の情報を保持します。A standard Azure Storage account, which maintains state and other information about your projects.
    • 従量課金プラン。サーバーレス関数アプリの実行環境となるホストを定義します。A consumption plan, which defines the underlying host for your serverless function app.
    • 関数アプリ。関数コードを実行するための環境となります。A function app, which provides the environment for executing your function code. 関数アプリを使用すると、同じホスティング プランに含まれるリソースの管理、デプロイ、共有を容易にするための論理ユニットとして関数をグループ化できます。A function app lets you group functions as a logical unit for easier management, deployment, and sharing of resources within the same hosting plan.
    • 関数アプリに接続された Application Insights インスタンス。サーバーレス関数の使用を追跡します。An Application Insights instance connected to the function app, which tracks usage of your serverless function.

    関数アプリが作成され、展開パッケージが適用されると、通知が表示されます。A notification is displayed after your function app is created and the deployment package is applied.

  4. この通知の [View Output](出力の表示) を選択すると、作成済みの Azure リソースなど、作成とデプロイの結果が表示されます。Select View Output in this notification to view the creation and deployment results, including the Azure resources that you created. 通知を見逃した場合は、右下隅にあるベル アイコンを選択して、再度確認します。If you miss the notification, select the bell icon in the lower right corner to see it again.

    作成完了通知

Azure で関数をテストするTest your function in Azure

  1. 出力 パネルから HTTP トリガーの URL をコピーします。Copy the URL of the HTTP trigger from the Output panel. HTTP によってトリガーされる関数を呼び出す URL は、次の形式である必要があります。The URL that calls your HTTP-triggered function should be in the following format:

    https://<functionappname>.azurewebsites.net/api/HelloOrchestration_HttpStart

  2. HTTP 要求のこの新しい URL をブラウザーのアドレス バーに貼り付けます。Paste this new URL for the HTTP request into your browser's address bar. 以前の発行済みアプリの使用時と同じ状態応答を受け取るはずです。You should get the same status response as before when using the published app.

次のステップNext steps

Visual Studio Code を使用して、C# の永続関数アプリを作成して発行しました。You have used Visual Studio Code to create and publish a C# durable function app.

この記事では、Visual Studio 2019 を使用して、"hello world" 永続関数をローカルで作成してテストする方法を学習します。In this article, you learn how to Visual Studio 2019 to locally create and test a "hello world" durable function. この関数は、他の関数の呼び出しを調整し、連結します。This function orchestrates and chains-together calls to other functions. その後、関数コードを Azure に発行します。You then publish the function code to Azure. これらのツールは、Visual Studio 2019 の Azure の開発ワークロードの一部として使用できます。These tools are available as part of the Azure development workload in Visual Studio 2019.

持続的関数が表示されている Visual Studio 2019 ウィンドを示すスクリーンショット。

前提条件Prerequisites

このチュートリアルを完了するには、以下が必要です。To complete this tutorial:

  • Visual Studio 2019 をインストールします。Install Visual Studio 2019. Azure 開発 ワークロードもインストールされていることを確認します。Make sure that the Azure development workload is also installed. Visual Studio 2017 でも Durable Functions 開発はサポートされていますが、UI と手順は異なります。Visual Studio 2017 also supports Durable Functions development, but the UI and steps differ.

  • Azure Storage Emulator がインストールされ、実行されていることを確認します。Verify you have the Azure Storage Emulator installed and running.

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。If you don't have an Azure subscription, create a free account before you begin.

関数アプリ プロジェクトを作成するCreate a function app project

Azure Functions テンプレートでは、Azure の関数アプリに発行できるプロジェクトを作成します。The Azure Functions template creates a project that can be published to a function app in Azure. 関数アプリを使用すると、リソースの管理、デプロイ、スケーリング、および共有を容易にするための論理ユニットとして関数をグループ化できます。A function app lets you group functions as a logical unit for easier management, deployment, scaling, and sharing of resources.

  1. Visual Studio で、 [ファイル] メニューから [新規] > [プロジェクト] の順に選択します。In Visual Studio, select New > Project from the File menu.

  2. [新しいプロジェクトの作成] ダイアログで functions を検索して [Azure Functions] テンプレートを選択し、 [次へ] を選択します。In the Create a new project dialog, search for functions, choose the Azure Functions template, and select Next.

    Visual Studio で関数を作成するための [新しいプロジェクト] ダイアログ

  3. プロジェクトの プロジェクト名 を入力し、 [OK] を選択します。Type a Project name for your project, and select OK. プロジェクト名は、C# 名前空間として有効である必要があります。そのため、アンダースコア、ハイフン、その他の英数字以外の文字は使用しないでください。The project name must be valid as a C# namespace, so don't use underscores, hyphens, or any other nonalphanumeric characters.

  4. [新しい Azure Functions アプリケーションの作成] で、図の下の表に示されている設定を使用してください。In Create a new Azure Functions Application, use the settings specified in the table that follows the image.

    Visual Studio の [新しい Azure Functions アプリケーションの作成] ダイアログ

    設定Setting 推奨値Suggested value 説明Description
    VersionVersion Azure Functions 3.0Azure Functions 3.0
    (.NET Core)(.NET Core)
    .NET Core 3.1 をサポートする Azure Functions のバージョン 3.0 ランタイムを使用する関数プロジェクトを作成します。Creates a function project that uses the version 3.0 runtime of Azure Functions, which supports .NET Core 3.1. 詳細については、「Azure Functions ランタイム バージョンをターゲットにする方法」をご覧ください。For more information, see How to target Azure Functions runtime version.
    テンプレートTemplate EmptyEmpty 空の関数アプリを作成します。Creates an empty function app.
    ストレージ アカウントStorage account ストレージ エミュレーターStorage Emulator Durable Functions の状態管理にはストレージ アカウントが必要です。A storage account is required for durable function state management.
  5. [作成] を選択して、空の関数プロジェクトを作成します。Select Create to create an empty function project. このプロジェクトには、関数を実行するために必要な基本的な構成ファイルがあります。This project has the basic configuration files needed to run your functions.

アプリに関数を追加するAdd functions to the app

次の手順では、テンプレートを使用してプロジェクト内に永続関数のコードを作成します。The following steps use a template to create the durable function code in your project.

  1. Visual Studio でプロジェクトを右クリックし、 [追加] > [新しい Azure 関数] を選択します。Right-click the project in Visual Studio and select Add > New Azure Function.

    新しい関数を追加する

  2. 追加メニューから [Azure Function] が選択されていることを確認し、C# ファイルの名前を入力してから [追加] を選択します。Verify Azure Function is selected from the add menu, type a name for your C# file, and then select Add.

  3. [Durable Functions のオーケストレーション] テンプレートを選択し、 [OK] を選択します。Select the Durable Functions Orchestration template and then select Ok

    Durable Functions Orchestration テンプレートを選択する

新しい永続関数がアプリに追加されます。A new durable function is added to the app. 新しい .cs ファイルを開いて内容を表示します。Open the new .cs file to view the contents. この永続関数は、次のメソッドを使用した単純な関数チェーンの例です。This durable function is a simple function chaining example with the following methods:

MethodMethod FunctionNameFunctionName 説明Description
RunOrchestrator <file-name> 持続的オーケストレーションを管理します。Manages the durable orchestration. このケースでは、オーケストレーションが起動し、一覧が作成され、3 つの関数呼び出しの結果が一覧に追加されます。In this case, the orchestration starts, creates a list, and adds the result of three functions calls to the list. 3 つの関数呼び出しが完了すると、一覧が返されます。When the three function calls are complete, it returns the list.
SayHello <file-name>_Hello 関数から hello が返されます。The function returns a hello. これが、オーケストレーションされるビジネス ロジックを含む関数です。It is the function that contains the business logic that is being orchestrated.
HttpStart <file-name>_HttpStart オーケストレーションのインスタンスを開始し、チェック状態の応答を返す、HTTP によってトリガーされる関数An HTTP-triggered function that starts an instance of the orchestration and returns a check status response.

関数プロジェクトと Durable Functions を作成できたので、この関数をローカル コンピューターでテストすることができます。Now that you've created your function project and a durable function, you can test it on your local computer.

関数をローカルでテストするTest the function locally

Azure Functions Core Tools を使用すると、ローカルの開発用コンピューター上で Azure Functions プロジェクトを実行できます。Azure Functions Core Tools lets you run an Azure Functions project on your local development computer. Visual Studio から初めて関数を開始すると、これらのツールをインストールするよう求めるメッセージが表示されます。You are prompted to install these tools the first time you start a function from Visual Studio.

  1. 関数をテストするには、F5 キーを押します。To test your function, press F5. メッセージが表示されたら、Visual Studio からの要求に同意し、Azure Functions Core (CLI) ツールをダウンロードしてインストールします。If prompted, accept the request from Visual Studio to download and install Azure Functions Core (CLI) tools. また、ツールで HTTP 要求を処理できるようにファイアウォールの例外を有効にすることが必要になる場合もあります。You may also need to enable a firewall exception so that the tools can handle HTTP requests.

  2. Azure Functions のランタイムの出力から、関数の URL をコピーします。Copy the URL of your function from the Azure Functions runtime output.

    Azure ローカル ランタイム

  3. HTTP 要求の URL をブラウザーのアドレス バーに貼り付け、要求を実行します。Paste the URL for the HTTP request into your browser's address bar and execute the request. 関数によって返されたローカルの GET 要求に対するブラウザーでの応答を次に示します。The following shows the response in the browser to the local GET request returned by the function:

    statusQueryGetUri が強調表示されているブラウザー ウィンドウを示すスクリーンショット。

    応答は、永続的なオーケストレーションが正常に開始されたことを示す HTTP 関数の最初の結果です。The response is the initial result from the HTTP function letting us know the durable orchestration has started successfully. これはまだオーケストレーションの最終的な結果ではありません。It is not yet the end result of the orchestration. 応答には、いくつかの便利な URL が含まれています。The response includes a few useful URLs. ここでは、オーケストレーションの状態を照会してみましょう。For now, let's query the status of the orchestration.

  4. statusQueryGetUri の URL 値をコピーし、ブラウザーのアドレス バーに貼り付け、要求を実行します。Copy the URL value for statusQueryGetUri and pasting it in the browser's address bar and execute the request.

    この要求によって、オーケストレーション インスタンスの状態が照会されます。The request will query the orchestration instance for the status. 最終的な応答は次のようになります。You should get an eventual response that looks like the following. この出力はインスタンスが完了したことを示し、永続的な関数の出力または結果を含みます。This output shows us the instance has completed, and includes the outputs or results of the durable function.

    {
        "instanceId": "d495cb0ac10d4e13b22729c37e335190",
        "runtimeStatus": "Completed",
        "input": null,
        "customStatus": null,
        "output": [
            "Hello Tokyo!",
            "Hello Seattle!",
            "Hello London!"
        ],
        "createdTime": "2019-11-02T07:07:40Z",
        "lastUpdatedTime": "2019-11-02T07:07:52Z"
    }
    
  5. デバッグを停止するには、Shift キーを押しながら F5 キー を押します。To stop debugging, press Shift + F5.

関数がローカル コンピューター上で正常に動作することを確認した後、プロジェクトを Azure に発行します。After you have verified that the function runs correctly on your local computer, it's time to publish the project to Azure.

Azure にプロジェクトを発行するPublish the project to Azure

プロジェクトを発行するには、Azure サブスクリプションに関数アプリがあることが必要です。You must have a function app in your Azure subscription before you can publish your project. 関数アプリは、Visual Studio から直接作成できます。You can create a function app right from Visual Studio.

  1. ソリューション エクスプローラー で、プロジェクトを右クリックし、 [発行] を選択します。In Solution Explorer, right-click the project and select Publish.

  2. [ターゲット][Azure] を選択します Azure ターゲットの選択

  3. [特定のターゲット][Azure Function App (Windows)] を選択しますIn Specific target, select Azure Function App (Windows)

    Azure Function App の選択

  4. [Function Instance](関数インスタンス)[Create a new Azure Function](新しい Azure 関数の作成) を選択し、次の表に示す値を使用します。In Function Instance, select Create a new Azure Function... and then use the values specified in the following table:

    設定Setting Value 説明Description
    名前Name グローバルに一意の名前Globally unique name 新しい関数アプリを一意に識別する名前。Name that uniquely identifies your new function app. この名前をそのまま使用するか、新しい名前を入力します。Accept this name or enter a new name. 有効な文字は、a-z0-9- です。Valid characters are: a-z, 0-9, and -.
    サブスクリプションSubscription 該当するサブスクリプションYour subscription 使用する Azure サブスクリプション。The Azure subscription to use. このサブスクリプションを承諾するか、ドロップダウン リストから新しいものを選択します。Accept this subscription or select a new one from the drop-down list.
    リソース グループResource group リソース グループの名前Name of your resource group 関数アプリを作成するリソース グループ。The resource group in which to create your function app. ドロップダウン リストから既存のリソース グループを選択するか、または [新規] を選択して新しいリソース グループを作成します。Select an existing resource group from the drop-down list or choose New to create a new resource group.
    プランの種類Plan Type 従量課金Consumption 従量課金プランで実行される関数アプリにプロジェクトを発行する場合は、関数アプリの実行に対してのみお支払いください。When you publish your project to a function app that runs in a Consumption plan, you pay only for executions of your functions app. 他のホスティング プランでは、コストが高くなります。Other hosting plans incur higher costs.
    場所Location App Service の場所Location of the app service 最寄りの リージョンまたは関数がアクセスする他のサービスの近くのリージョン内の [場所] を選択します。Choose a Location in a region near you or other services your functions access.
    Azure StorageAzure Storage 汎用ストレージ アカウントGeneral-purpose storage account Functions Runtime には Azure Storage アカウントが必須です。An Azure Storage account is required by the Functions runtime. [新規] を選択して汎用ストレージ アカウントを構成します。Select New to configure a general-purpose storage account. または、ストレージ アカウントの要件を満たす既存のアカウントを選択することもできます。You can also choose an existing account that meets the storage account requirements.

    [App Service の作成] ダイアログ

  5. [作成] を選択して、関数アプリとその関連リソースを Azure で作成します。Select Create to create a function app and its related resources in Azure.

  6. [Functions instance](関数インスタンス) で、 [Run from package file](パッケージ ファイルから実行します) に必ずチェックを入れてください。In the Functions instance, make sure that Run from package file is checked. 関数アプリは、Zip Deploy を使用して、Run-From-Package モードが有効な状態でデプロイされます。Your function app is deployed using Zip Deploy with Run-From-Package mode enabled. これは、パフォーマンスが向上するため、関数プロジェクトの推奨されるデプロイ方法です。This is the recommended deployment method for your functions project, since it results in better performance.

    プロファイル作成の完了

  7. [完了] を選択し、[発行] ページで [発行] を選択して、プロジェクト ファイルを含むパッケージを Azure の新しい関数アプリにデプロイします。Select Finish, and on the Publish page, select Publish to deploy the package containing your project files to your new function app in Azure.

    デプロイが完了すると、 [発行] タブに Azure の関数アプリのルート URL が表示されます。After the deployment completes the root URL of the function app in Azure is shown in the Publish tab.

  8. [発行] タブで、 [Cloud Explorer で管理する] を選択します。In the Publish tab, choose Manage in Cloud Explorer. これにより、Cloud Explorer で新しい関数アプリ Azure リソースが開かれます。This opens the new function app Azure resource in Cloud Explorer.

    発行成功のメッセージ

    Cloud Explorer を使用すると、Visual Studio でサイトのコンテンツを表示し、関数アプリを開始および停止し、Azure の関数アプリ リソースを直接および Azure portal で参照できます。Cloud Explorer lets you use Visual Studio to view the contents of the site, start and stop the function app, and browse directly to function app resources on Azure and in the Azure portal.

Azure で関数をテストするTest your function in Azure

  1. [発行プロファイル] ページから関数アプリのベース URL をコピーします。Copy the base URL of the function app from the Publish profile page. 関数をローカルでテストしたときに使用した URL の localhost:port 部分を新しいベース URL に置き換えます。Replace the localhost:port portion of the URL you used when testing the function locally with the new base URL.

    Durable Functions の HTTP トリガーを呼び出す URL は、次の形式である必要があります。The URL that calls your durable function HTTP trigger should be in the following format:

    https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>_HttpStart

  2. HTTP 要求のこの新しい URL をブラウザーのアドレス バーに貼り付けます。Paste this new URL for the HTTP request into your browser's address bar. 以前の発行済みアプリの使用時と同じ状態応答を受け取るはずです。You should get the same status response as before when using the published app.

次のステップNext steps

Visual Studio を使用して、C# の Durable Functions アプリを作成して発行しました。You have used Visual Studio to create and publish a C# durable function app.