Uw eerste Durable Function maken in C#Create your first durable function in C#

Durable Functions is een extensie van Azure Functions waarmee u stateful functies kunt schrijven in een serverloze omgeving.Durable Functions is an extension of Azure Functions that lets you write stateful functions in a serverless environment. Met de extensie worden status, controlepunten en het opnieuw opstarten voor u beheerd.The extension manages state, checkpoints, and restarts for you.

In dit artikel leert u hoe u met Visual Studio 2019 lokaal een ' Hallo wereld ' duurzame functie kunt maken en testen.In this article, you learn how to use the Visual Studio 2019 to locally create and test a "hello world" durable function. Met deze functie organiseert en koppelt u aanroepen naar andere functies.This function orchestrates and chains-together calls to other functions. Vervolgens publiceert u de functiecode op Azure.You then publish the function code to Azure. Deze hulpprogram ma's zijn beschikbaar als onderdeel van de Azure Development-workload in Visual Studio 2019.These tools are available as part of the Azure development workload in Visual Studio 2019.

Duurzame functie uitvoeren in Azure

VereistenPrerequisites

Vereisten voor het voltooien van deze zelfstudie:To complete this tutorial:

  • Installeer Visual Studio 2019.Install Visual Studio 2019. Zorg ervoor dat de werkbelasting Azure development ook is geïnstalleerd.Make sure that the Azure development workload is also installed. Visual Studio 2017 biedt ook ondersteuning voor Durable Functions ontwikkeling, maar de gebruikers interface en stappen verschillen.Visual Studio 2017 also supports Durable Functions development, but the UI and steps differ.

  • Controleer of de Azure Storage Emulator is geïnstalleerd en wordt uitgevoerd.Verify you have the Azure Storage Emulator installed and running.

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.If you don't have an Azure subscription, create a free account before you begin.

Een functie-appproject makenCreate a function app project

De Azure Functions-sjabloon maakt een project dat kan worden gepubliceerd in een functie-app in Azure.The Azure Functions template creates a project that can be published to a function app in Azure. Met een functie-app kunt u functies groeperen in een logische eenheid, zodat u resources kunt beheren, implementeren en delen.A function app lets you group functions as a logical unit for management, deployment, and sharing of resources.

  1. Selecteer Nieuw > Project in het menu Bestand in Visual Studio.In Visual Studio, select New > Project from the File menu.

  2. In het dialoog venster een nieuw project toevoegen zoekt functions, kiest u de sjabloon Azure functions en selecteert u volgende.In the Add a new project dialog, search for functions, choose the Azure Functions template, and select Next.

    Het dialoogvenster Nieuw project om een functie in Visual Studio te maken

  3. Typ een project naam voor het project en selecteer OK.Type a Project name for your project, and select OK. De project naam moet geldig zijn als een C# naam ruimte, dus gebruik geen onderstrepings tekens, afbreek streepjes of andere niet-alfanumerieke karakters.The project name must be valid as a C# namespace, so don't use underscores, hyphens, or any other nonalphanumeric characters.

  4. Gebruik in een nieuwe Azure functions-toepassing makende instellingen die zijn opgegeven in de tabel die volgt op de installatie kopie.In Create a new Azure Functions Application, use the settings specified in the table that follows the image.

    Een nieuw dialoog venster voor Azure Functions toepassing maken in Visual Studio

    InstellingSetting Voorgestelde waardeSuggested value DescriptionDescription
    VersieVersion Azure Functions 2.xAzure Functions 2.x
    (.NET Core)(.NET Core)
    Hiermee wordt een functieproject gemaakt dat gebruikmaakt van versie 2.x van de runtime van Azure Functions, die ondersteuning biedt voor .NET Core.Creates a function project that uses the version 2.x runtime of Azure Functions, which supports .NET Core. Azure Functions 1.x ondersteunt .NET Framework.Azure Functions 1.x supports the .NET Framework. Zie Een versie kiezen voor de runtime van Azure Functions voor meer informatie.For more information, see How to target Azure Functions runtime version.
    SjabloonTemplate LeegEmpty Hiermee wordt een lege functie-app gemaakt.Creates an empty function app.
    OpslagaccountStorage account OpslagemulatorStorage Emulator Een opslagaccount is vereist voor het statusbeheer van Durable Functions.A storage account is required for durable function state management.
  5. Selecteer maken om een leeg functie project te maken.Select Create to create an empty function project. Dit project bevat de basisconfiguratiebestanden die nodig zijn voor het uitvoeren van uw functies.This project has the basic configuration files needed to run your functions.

Functies toevoegen aan de appAdd functions to the app

In de volgende stappen wordt een sjabloon gebruikt om de code van de Durable Function te maken in uw project.The following steps use a template to create the durable function code in your project.

  1. Klik met de rechtermuisknop op het project in Visual Studio en selecteer Toevoegen > Nieuwe Azure-functie.Right-click the project in Visual Studio and select Add > New Azure Function.

    Nieuwe functie toevoegen

  2. Controleer of de Azure-functie is geselecteerd in het menu toevoegen, typ een C# naam voor het bestand en selecteer vervolgens toevoegen.Verify Azure Function is selected from the add menu, type a name for your C# file, and then select Add.

  3. Selecteer de Durable functions Orchestration -sjabloon en selecteer vervolgens OK .Select the Durable Functions Orchestration template and then select Ok

    Durable sjabloon selecteren

Er wordt een nieuwe Durable Function toegevoegd aan de app.A new durable function is added to the app. Open het nieuwe CS-bestand om de inhoud te bekijken.Open the new .cs file to view the contents. Deze Durable Function is een eenvoudig voorbeeld van het koppelen van functies met behulp van de volgende methoden:This durable function is a simple function chaining example with the following methods:

MethodeMethod FunctionNameFunctionName DescriptionDescription
RunOrchestrator <file-name> Hiermee beheert u de Durable-indeling.Manages the durable orchestration. In dit geval wordt de indeling gestart, wordt er een lijst gemaakt en wordt het resultaat van drie functieaanroepen aan de lijst toegevoegd.In this case, the orchestration starts, creates a list, and adds the result of three functions calls to the list. Wanneer de drie functieaanroepen zijn voltooid, wordt de lijst geretourneerd.When the three function calls are complete, it returns the list.
SayHello <file-name>_Hello De functie geeft 'Hello' als resultaat.The function returns a hello. Dit is de functie die de bedrijfslogica bevat die wordt ingedeeld.This is the function that contains the business logic that is being orchestrated.
HttpStart <file-name>_HttpStart Een door HTTP geactiveerde functie die een exemplaar van de indeling start en een reactie voor de controlestatus retourneert.An HTTP-triggered function that starts an instance of the orchestration and returns a check status response.

Nu u uw functieproject en een Durable Function hebt gemaakt, kunt u deze testen op uw lokale computer.Now that you've created your function project and a durable function, you can test it on your local computer.

De functie lokaal testenTest the function locally

Met Azure Functions Core-hulpprogramma's kunt u een Azure Functions-project uitvoeren op uw lokale ontwikkelcomputer.Azure Functions Core Tools lets you run an Azure Functions project on your local development computer. De eerste keer dat u een functie vanuit Visual Studio start, wordt u gevraagd deze hulpprogramma's te installeren.You are prompted to install these tools the first time you start a function from Visual Studio.

  1. Druk op F5 om de functie testen.To test your function, press F5. Accepteer desgevraagd de aanvraag van Visual Studio om Azure Functions Core (CLI)-hulpprogramma's te downloaden en installeren.If prompted, accept the request from Visual Studio to download and install Azure Functions Core (CLI) tools. Mogelijk moet u ook een firewall-uitzondering inschakelen, zodat de hulpprogramma's HTTP-aanvragen kunnen afhandelen.You may also need to enable a firewall exception so that the tools can handle HTTP requests.

  2. Kopieer de URL van uw functie vanuit de uitvoer van de Azure Functions-runtime.Copy the URL of your function from the Azure Functions runtime output.

    Lokale Azure-runtime

  3. Plak de URL van de HTTP-aanvraag in de adresbalk van uw browser en voer de aanvraag uit.Paste the URL for the HTTP request into your browser's address bar and execute the request. Hieronder ziet u de reactie op de lokale GET-aanvraag die door de functie wordt geretourneerd, weergegeven in de browser:The following shows the response in the browser to the local GET request returned by the function:

    De reactie van de lokale host van de functie in de browser

    De reactie is het eerste resultaat van de HTTP-functie waarmee wordt aangegeven dat de orchestrator is gestart.The response is the initial result from the HTTP function letting us know the durable orchestration has started successfully. Dit is nog niet het eindresultaat van de orchestrator.It is not yet the end result of the orchestration. De reactie bevat enkele nuttige URL's.The response includes a few useful URLs. Maar eerst gaan we de status van de orchestrator opvragen.For now, let's query the status of the orchestration.

  4. Kopieer de URL-waarde voor statusQueryGetUri, plak deze in de adresbalk van de browser en voer de aanvraag uit.Copy the URL value for statusQueryGetUri and pasting it in the browser's address bar and execute the request.

    De aanvraag voert een query uit op het orchestrator-exemplaar voor de status.The request will query the orchestration instance for the status. U moet uiteindelijk een reactie krijgen die lijkt op de volgende.You should get an eventual response that looks like the following. Dit laat zien dat het exemplaar is voltooid en dat het de uitvoer of resultaten van de Durable Function bevat.This 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": "2018-11-08T07:07:40Z",
        "lastUpdatedTime": "2018-11-08T07:07:52Z"
    }
    
  5. Als u wilt stoppen met fouten opsporen, drukt u op Shift + F5.To stop debugging, press Shift + F5.

Nadat u hebt gecontroleerd of de functie correct wordt uitgevoerd op uw lokale computer, is het tijd om het project te publiceren naar Azure.After you have verified that the function runs correctly on your local computer, it's time to publish the project to Azure.

Het project naar Azure publicerenPublish the project to Azure

Voordat u uw project kunt publiceren, moet u een functie-app in uw Azure-abonnement hebben.You must have a function app in your Azure subscription before you can publish your project. U kunt rechtstreeks vanuit Visual Studio een functie-app maken.You can create a function app right from Visual Studio.

  1. Klik in Solution Explorer met de rechtermuisknop op het project en selecteer Publiceren.In Solution Explorer, right-click the project and select Publish.

  2. Gebruik in het dialoog venster een publicatie doel selecteren de publicatie opties zoals opgegeven in de tabel onder de afbeelding:In the Pick a publish target dialog, use the publish options as specified in the table below the image:

    Kies een publicatiedoel

    OptieOption DescriptionDescription
    Azure Functions verbruiks abonnementAzure Functions Consumption plan Wanneer u uw project publiceert naar een functie-app die wordt uitgevoerd in een verbruiks abonnement, betaalt u alleen voor uitvoeringen van uw functions-app.When you publish your project to a function app that runs in a Consumption plan, you only pay for executions of your functions app. Andere hosting abonnementen nemen hogere kosten in bestaan.Other hosting plans incur higher costs. Zie Azure functions schalen en hostenvoor meer informatie.To learn more, see Azure Functions scale and hosting.
    Nieuwe makenCreate new Er wordt een nieuwe functie-app met gerelateerde resources gemaakt in Azure.A new function app, with related resources, is created in Azure. Als u Bestaande selecteren kiest, worden alle bestanden in de bestaande functie-app in Azure overschreven door bestanden uit het lokale project.When you choose Select Existing, all files in the existing function app in Azure are overwritten by files from the local project. Gebruik deze optie alleen als u updates opnieuw publiceert naar een bestaande functie-app.Only use this option when republishing updates to an existing function app.
    Uitvoeren vanuit pakket bestandRun from package file Uw functie-app wordt geïmplementeerd met behulp van zip-implementatie met de modus voor uitvoeren vanaf pakket ingeschakeld.Your function app is deployed using Zip Deploy with Run-From-Package mode enabled. Dit is de aanbevolen manier om uw functies uit te voeren, wat resulteert in betere prestaties.This is the recommended way of running your functions, which results in better performance. Als u deze optie niet gebruikt, moet u ervoor zorgen dat uw functie-app-project niet lokaal wordt uitgevoerd voordat u naar Azure publiceert.When not using this option, make sure to stop your function app project from running locally before you publish to Azure.
  3. Selecteer Publiceren.Select Publish. Als u zich nog niet hebt aangemeld bij uw Azure-account vanuit Visual Studio, selecteert u Aanmelden.If you haven't already signed-in to your Azure account from Visual Studio, select Sign-in. U kunt ook een gratis Azure-account maken.You can also create a free Azure account.

  4. In de app service: Maak een nieuw dialoog venster en gebruik de Hosting -instellingen zoals opgegeven in de tabel onder de afbeelding:In the App Service: Create new dialog, use the Hosting settings as specified in the table below the image:

    Het dialoogvenster App Service maken

    InstellingSetting Voorgestelde waardeSuggested value DescriptionDescription
    NameName Wereldwijd unieke naamGlobally unique name Naam waarmee uw nieuwe functie-app uniek wordt aangeduid.Name that uniquely identifies your new function app. Geldige tekens zijn a-z, 0-9 en -.Valid characters are a-z, 0-9, and -.
    AbonnementSubscription Kies uw abonnementChoose your subscription Het te gebruiken Azure-abonnement.The Azure subscription to use.
    ResourcegroepResource Group myResourceGroupmyResourceGroup Naam van de resourcegroep waarin uw functie-app moet worden gemaakt.Name of the resource group in which to create your function app. Kies Nieuw om een nieuwe resourcegroep te maken.Choose New to create a new resource group.
    Hosting planHosting Plan VerbruiksabonnementConsumption plan Zorg ervoor dat u het verbruik kiest onder grootte nadat u Nieuw hebt geselecteerd om een serverloos plan te maken.Make sure to choose the Consumption under Size after you select New to create a serverless plan. Kies ook een Locatie in een regio bij u in de buurt of in de buurt van andere services die door uw functies worden gebruikt.Also, choose a Location in a region near you or near other services your functions access. Wanneer u in een abonnement van een ander type dan Verbruik werkt, moet u de schaal van uw functie-app beheren.When you run in a plan other than Consumption, you must manage the scaling of your function app.
    Azure StorageAzure Storage Opslag account voor algemeen gebruikGeneral-purpose storage account Er is een Azure-opslagaccount vereist voor de Functions-runtime.An Azure storage account is required by the Functions runtime. Selecteer Nieuw om een opslag account voor algemeen gebruik te maken.Select New to create a general-purpose storage account. U kunt ook een bestaand account gebruiken dat voldoet aan de vereisten voor een opslagaccount.You can also use an existing account that meets the storage account requirements.
  5. Selecteer maken om een functie-app en gerelateerde resources in azure te maken met deze instellingen en om uw functie project code te implementeren.Select Create to create a function app and related resources in Azure with these settings and deploy your function project code.

  6. Noteer de Site-URL wanneer de implementatie is voltooid. Dit is het adres van uw functie-app in Azure.After the deployment is complete, make a note of the Site URL value, which is the address of your function app in Azure.

    Succesbericht publiceren

Uw functie testen in AzureTest your function in Azure

  1. Kopieer de basis-URL van de functie-app van de pagina Profiel publiceren.Copy the base URL of the function app from the Publish profile page. Vervang het localhost:port-deel van de URL dat u hebt gebruikt bij het lokaal testen van de functie door de nieuwe basis-URL.Replace the localhost:port portion of the URL you used when testing the function locally with the new base URL.

    De URL die de HTTP-trigger van uw Durable Function aanroept, moet de volgende indeling hebben:The URL that calls your durable function HTTP trigger should be in the following format:

     http://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>_HttpStart
    
  2. Plak deze nieuwe URL van de HTTP-aanvraag in de adresbalk van uw browser.Paste this new URL for the HTTP request into your browser's address bar. U krijgt dezelfde statusreactie als eerder, toen u de gepubliceerde app gebruikte.You should get the same status response as before when using the published app.

Volgende stappenNext steps

U hebt Visual Studio gebruikt om een Durable Function-app in C# te maken en te publiceren.You have used Visual Studio to create and publish a C# durable function app.