Share via


Uw eerste Durable Function maken in C#

Durable Functions is een uitbreiding van Azure Functions waarmee u stateful functies kunt schrijven in een serverloze omgeving. Met de extensie worden status, controlepunten en het opnieuw opstarten voor u beheerd.

In dit artikel leert u hoe u Visual Studio Code kunt gebruiken om lokaal een duurzame Hallo wereld-functie te maken en te testen. Met deze functie worden aanroepen naar andere functies ingedeeld en gekoppeld. Vervolgens kunt u de functiecode publiceren naar Azure. Deze hulpprogramma's zijn beschikbaar als onderdeel van de Azure Functions-extensie van Visual Studio Code.

Schermopname van het Visual Studio Code-venster met een duurzame functie.

Vereisten

Vereisten om deze zelfstudie te voltooien:

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

Uw lokale project maken

In deze sectie gebruikt u Visual Studio Code om een lokaal Azure Functions-project te maken.

  1. Druk in Visual Studio Code op F1 (of Ctrl/Cmd+Shift+P) om het opdrachtenpalet te openen. In het opdrachtenpalet zoekt en selecteert u Azure Functions: Create New Project....

    Schermopname van het venster voor het maken van een functieproject.

  2. Kies een lege map voor uw project en kies Selecteren.

  3. Volg de aanwijzingen en geef de volgende informatie op:

    Prompt Weergegeven als Beschrijving
    Selecteer een taal voor uw functie-appproject C# Een lokaal C# Functions-project maken.
    Een versie selecteren Azure Functions v4 U ziet deze optie alleen wanneer de Core Tools niet al zijn geïnstalleerd. In dit geval worden de Core Tools geïnstalleerd wanneer u de app voor het eerst uitvoert.
    Selecteer een sjabloon voor de eerste functie van uw project Nu overslaan
    Selecteer hoe u uw project wilt openen In het huidige venster openen Visual Studio Code wordt opnieuw geopend in de map die u hebt geselecteerd.

Visual Studio Code installeert indien nodig de Azure Functions Core Tools. Er wordt ook een functie-app-project gemaakt in een map. Dit project bevat de configuratiebestanden host.json en local.settings.json.

Functies toevoegen aan de app

In de volgende stappen wordt een sjabloon gebruikt om de code van de Durable Function te maken in uw project.

  1. In het opdrachtenpalet zoekt en selecteert u Azure Functions: Create Function....

  2. Volg de aanwijzingen en geef de volgende informatie op:

    Prompt Weergegeven als Beschrijving
    Selecteer een sjabloon voor uw functie DurableFunctionsOrchestration Een Durable Functions-indeling maken
    Geef een functienaam op HelloOrchestration De naam van de klasse waarin de functies zijn gemaakt
    Geef een naamruimte op Company.Function Naamruimte voor de gegenereerde klasse
  3. Wanneer u in Visual Studio Code wordt gevraagd om een opslagaccount te selecteren, kiest u Opslagaccount selecteren. Volg de aanwijzingen en geef de volgende informatie op om een nieuw opslagaccount te maken in Azure:

    Prompt Weergegeven als Beschrijving
    Abonnement selecteren naam van uw abonnement Selecteer uw Azure-abonnement
    Selecteer een opslagaccount Een nieuw opslagaccount maken
    Voer de naam van het nieuwe opslagaccount in unieke naam Naam van het opslagaccount dat moet worden gemaakt
    Een resourcegroep selecteren unieke naam Naam van de resourcegroep die moet worden gemaakt
    Een locatie selecteren regio Kies een regio bij u in de buurt

Een klasse die de nieuwe functies bevat, wordt aan het project toegevoegd. Visual Studio Code voegt ook het opslagaccount verbindingsreeks toe aan local.settings.json en een verwijzing naar het Microsoft.Azure.WebJobs.Extensions.DurableTask NuGet-pakket aan het .csproj-projectbestand.

Open het nieuwe bestand HelloOrchestration.cs om de inhoud weer te geven. Deze Durable Function is een eenvoudig voorbeeld van het koppelen van functies met behulp van de volgende methoden:

Methode FunctionName Beschrijving
RunOrchestrator HelloOrchestration Hiermee beheert u de Durable-indeling. In dit geval wordt de indeling gestart, wordt er een lijst gemaakt en wordt het resultaat van drie functieaanroepen aan de lijst toegevoegd. Wanneer de drie functieaanroepen zijn voltooid, wordt de lijst geretourneerd.
SayHello HelloOrchestration_Hello De functie geeft 'Hello' als resultaat. Dit is de functie die de bedrijfslogica bevat die wordt ingedeeld.
HttpStart HelloOrchestration_HttpStart Een door HTTP geactiveerde functie die een exemplaar van de indeling start en een reactie voor de controlestatus retourneert.

Nu u uw functieproject en een Durable Function hebt gemaakt, kunt u deze testen op uw lokale computer.

De functie lokaal testen

Met Azure Functions Core-hulpprogramma's kunt u een Azure Functions-project uitvoeren op uw lokale ontwikkelcomputer. De eerste keer dat u een functie vanuit Visual Studio Code start, wordt u gevraagd deze hulpprogramma's te installeren.

  1. Als u de functie wilt testen, stelt u een onderbrekingspunt in de code van de SayHello activiteitsfunctie in en drukt u op F5 om het functie-app-project te starten. De uitvoer van Core Tools wordt weergegeven in het deelvenster Terminal.

    Notitie

    Zie Durable Functions Diagnostics voor meer informatie over foutopsporing.

  2. Kopieer het URL-eindpunt van de door HTTP getriggerde functie in het deelvenster Terminal.

    Schermopname van het lokale uitvoervenster van Azure.

  3. Gebruik een hulpprogramma zoals Postman of cURL en verzend vervolgens een HTTP POST-aanvraag naar het URL-eindpunt.

    Het antwoord is het eerste resultaat van de HTTP-functie, zodat we weten dat de duurzame indeling is gestart. Het is nog niet het eindresultaat van de indeling. De reactie bevat enkele nuttige URL's. Maar eerst gaan we de status van de orchestrator opvragen.

  4. Kopieer de URL-waarde voor statusQueryGetUri, plak deze in de adresbalk van de browser en voer de aanvraag uit. U kunt ook Postman blijven gebruiken om de GET-aanvraag uit te geven.

    De aanvraag voert een query uit op het orchestrator-exemplaar voor de status. U moet een uiteindelijk antwoord krijgen, dat laat zien dat het exemplaar is voltooid en de uitvoer of resultaten van de duurzame functie bevat. Deze ziet er als volgt uit:

    {
        "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. Als u de foutopsporing wilt stoppen, drukt u op Shift+F5 in Visual Studio Code.

Nadat u hebt gecontroleerd of de functie correct wordt uitgevoerd op uw lokale computer, is het tijd om het project te publiceren in Azure.

Aanmelden bij Azure

Voordat u Azure-resources kunt maken of uw app kunt publiceren, moet u zich aanmelden bij Azure.

  1. Als u nog niet bent aangemeld, kiest u het Azure-pictogram op de activiteitenbalk. Kies vervolgens in het gebied Resources aanmelden bij Azure....

    Schermopname van het aanmeldingsvenster bij Azure in VS Code.

    Als u al bent aangemeld en uw bestaande abonnementen kunt zien, gaat u naar de volgende sectie. Als u nog geen Azure-account hebt, kiest u Een Azure-account maken.... Leerlingen/studenten kunnen een Azure for Students-account maken kiezen ....

  2. Wanneer u hierom wordt gevraagd in de browser, kiest u uw Azure-account en meld u zich aan met uw Azure-accountreferenties. Als u een nieuw account maakt, kunt u zich aanmelden nadat uw account is gemaakt.

  3. Nadat u bent aangemeld, kunt u het nieuwe browservenster sluiten. De abonnementen die deel uitmaken van uw Azure-account, worden weergegeven in de zijbalk.

De functie-app maken in Azure

In deze sectie maakt u een functie-app en gerelateerde resources in uw Azure-abonnement.

  1. Kies het Azure-pictogram in de activiteitenbalk. Selecteer vervolgens in het gebied Resources het + pictogram en kies de optie Functie-app maken in Azure .

    Een resource maken in uw Azure-abonnement

  2. Geef de volgende informatie op bij de prompts:

    Prompt Selectie
    Abonnement selecteren Kies het abonnement dat u wilt gebruiken. U ziet deze prompt niet wanneer er slechts één abonnement zichtbaar is onder Resources.
    Voer een wereldwijd unieke naam in voor de functie-app Typ een naam die geldig is in een URL-pad. De naam die u typt, wordt gevalideerd om er zeker van te zijn dat deze uniek is in Azure Functions.
    Een runtimestack selecteren Kies de taalversie waarop u lokaal hebt uitgevoerd.
    Selecteer een locatie voor nieuwe resources Kies voor betere prestaties een regio bij u in de buurt.

    In de extensie ziet u de status van afzonderlijke resources wanneer ze worden gemaakt in Azure in het deelvenster Activiteitenlogboek .

    Logboek van het maken van Azure-resources

  3. Wanneer het maken is voltooid, worden de volgende Azure-resources in uw abonnement gemaakt. De resources hebben een naam op basis van de naam van uw functie-app:

    • Een resourcegroep, een logische container voor gerelateerde resources.
    • Een standaard Azure Storage-account dat de status en andere informatie over uw projecten onderhoudt.
    • Een functie-app, die de omgeving biedt voor het uitvoeren van uw functiecode. Met een functie-app kunt u functies groeperen in een logische eenheid, zodat u resources eenvoudiger kunt beheren, implementeren en delen binnen hetzelfde hostingabonnement.
    • Een App Service-plan, waarmee de onderliggende host voor uw functie-app wordt gedefinieerd.
    • Een Application Insights-exemplaar dat is verbonden met de functie-app, waarmee het gebruik van uw functies in de app wordt bijgehouden.

    Nadat de functie-app is gemaakt en het implementatiepakket is toegepast, wordt er een melding weergegeven.

    Tip

    Standaard worden de Azure-resources die door uw functie-app zijn vereist, gemaakt op basis van de naam van de functie-app die u opgeeft. Ze worden standaard ook gemaakt in dezelfde nieuwe resourcegroep met de functie-app. Als u de namen van deze resources wilt aanpassen of bestaande resources opnieuw wilt gebruiken, moet u het project publiceren met geavanceerde opties voor maken.

Het project implementeren in Azure

Belangrijk

Als u implementeert in een bestaande functie-app, wordt de inhoud van die app altijd overschreven in Azure.

  1. Zoek in het gebied Resources van de Azure-activiteit de functie-app-resource die u zojuist hebt gemaakt, klik met de rechtermuisknop op de resource en selecteer Implementeren in functie-app....

  2. Wanneer u wordt gevraagd om eerdere implementaties te overschrijven, selecteert u Implementeren om uw functiecode te implementeren in de nieuwe functie-app-resource.

  3. Nadat de implementatie is voltooid, selecteert u Uitvoer weergeven om de resultaten van het maken en implementeren weer te geven, inclusief de Azure-resources die u hebt gemaakt. Als u de melding mist, selecteert u het belpictogram in de rechterbenedenhoek om deze opnieuw weer te geven.

    Schermopname van het venster Uitvoer weergeven.

Uw functie testen in Azure

  1. Kopieer de URL van de HTTP-trigger vanuit het deelvenster Output (Uitvoer). De URL die uw door HTTP geactiveerde functie aanroept, moet de volgende indeling hebben:

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

  2. Plak deze nieuwe URL van de HTTP-aanvraag in de adresbalk van uw browser. U moet hetzelfde statusantwoord krijgen als voorheen wanneer u de gepubliceerde app gebruikt.

Volgende stappen

U hebt Visual Studio Code gebruikt om een Durable Function-app in C# te maken en te publiceren.

In dit artikel leert u hoe u Visual Studio 2022 gebruikt om lokaal een duurzame 'hallo wereld'-functie te maken en te testen. Met deze functie organiseert en koppelt u aanroepen naar andere functies. Vervolgens publiceert u de functiecode op Azure. Deze hulpprogramma's zijn beschikbaar als onderdeel van de Azure-ontwikkelworkload in Visual Studio 2022.

Schermopname van het Visual Studio 2019-venster met een duurzame functie.

Vereisten

Vereisten om deze zelfstudie te voltooien:

  • Installeer Visual Studio 2022. Zorg ervoor dat de werkbelasting Azure development ook is geïnstalleerd. Visual Studio 2019 biedt ook ondersteuning voor Durable Functions-ontwikkeling, maar de gebruikersinterface en stappen verschillen.

  • Controleer of de Azurite Emulator is geïnstalleerd en wordt uitgevoerd.

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

Een functie-appproject maken

De Azure Functions-sjabloon maakt een project dat kan worden gepubliceerd in een functie-app in Azure. Met een functie-app kunt u functies groeperen in een logische eenheid, zodat u resources eenvoudiger kunt beheren, implementeren, schalen en delen.

  1. Selecteer Nieuw>Project in het menu Bestand in Visual Studio.

  2. Kies in het dialoogvenster Een nieuw project maken naar functions, kies de Azure Functions-sjabloon en selecteer vervolgens Volgende.

    Schermopname van het dialoogvenster Nieuw project om een functie te maken in Visual Studio.

  3. Voer een projectnaam in voor uw project en selecteer OK. De projectnaam moet geldig zijn als een C#-naamruimte, dus gebruik geen onderstrepingstekens, afbreekstreepjes of niet-numerieke tekens.

  4. Gebruik onder Aanvullende informatie de instellingen die zijn opgegeven in de tabel die volgt op de afbeelding.

    Schermopname van het maken van een nieuw azure Functions-toepassingsdialoogvenster in Visual Studio.

    Instelling Voorgestelde waarde Beschrijving
    Functions-werkrol .NET 6 Hiermee maakt u een functieproject dat .NET 6 en Azure Functions Runtime 4.0 ondersteunt. Zie Een versie kiezen voor de runtime van Azure Functions voor meer informatie.
    Functie Leeg Hiermee wordt een lege functie-app gemaakt.
    Opslagaccount Opslagemulator Een opslagaccount is vereist voor het statusbeheer van Durable Functions.
  5. Selecteer Maken om een leeg Function-project te maken. Dit project bevat de basisconfiguratiebestanden die nodig zijn voor het uitvoeren van uw functies.

Functies toevoegen aan de app

In de volgende stappen wordt een sjabloon gebruikt om de code van de Durable Function te maken in uw project.

  1. Klik met de rechtermuisknop op het project in Visual Studio en selecteer Toevoegen>Nieuwe Azure-functie.

    Schermopname van nieuwe functie toevoegen.

  2. Controleer of De Azure-functie is geselecteerd in het menu Toevoegen, voer een naam in voor uw C#-bestand en selecteer Vervolgens Toevoegen.

  3. Selecteer de sjabloon Durable Functions Orchestration en selecteer vervolgens Toevoegen.

    Schermopname van Duurzame sjabloon selecteren.

Er wordt een nieuwe Durable Function toegevoegd aan de app. Open het nieuwe .cs-bestand om de inhoud weer te geven. Deze Durable Function is een eenvoudig voorbeeld van het koppelen van functies met behulp van de volgende methoden:

Methode FunctionName Beschrijving
RunOrchestrator <file-name> Hiermee beheert u de Durable-indeling. In dit geval wordt de indeling gestart, wordt er een lijst gemaakt en wordt het resultaat van drie functieaanroepen aan de lijst toegevoegd. Wanneer de drie functieaanroepen zijn voltooid, wordt de lijst geretourneerd.
SayHello <file-name>_Hello De functie geeft 'Hello' als resultaat. Dit is de functie die de bedrijfslogica bevat die wordt ingedeeld.
HttpStart <file-name>_HttpStart Een door HTTP geactiveerde functie die een exemplaar van de indeling start en een reactie voor de controlestatus retourneert.

U kunt het testen op uw lokale computer nu u uw functieproject en een duurzame functie hebt gemaakt.

De functie lokaal testen

Met Azure Functions Core-hulpprogramma's kunt u een Azure Functions-project uitvoeren op uw lokale ontwikkelcomputer. U wordt gevraagd deze hulpprogramma's te installeren wanneer u voor het eerst een functie start vanuit Visual Studio.

  1. Druk op F5 om de functie testen. Accepteer desgevraagd de aanvraag van Visual Studio om Azure Functions Core-hulpprogramma's (CLI) te downloaden en installeren. Mogelijk moet u ook een firewall-uitzondering inschakelen, zodat de hulpprogramma's HTTP-aanvragen kunnen afhandelen.

  2. Kopieer de URL van uw functie vanuit de uitvoer van de Azure Functions-runtime.

    Schermopname van lokale Azure-runtime.

  3. Plak de URL van de HTTP-aanvraag in de adresbalk van uw browser en voer de aanvraag uit. Hieronder ziet u de reactie op de lokale GET-aanvraag die door de functie wordt geretourneerd, weergegeven in de browser:

    Schermopname van het browservenster met statusQueryGetUri gemarkeerd.

    Het antwoord is het eerste resultaat van de HTTP-functie, zodat we weten dat de duurzame indeling is gestart. Het is nog niet het eindresultaat van de indeling. De reactie bevat enkele nuttige URL's. Maar eerst gaan we de status van de orchestrator opvragen.

  4. Kopieer de URL-waarde voor statusQueryGetUri, plak deze in de adresbalk van de browser en voer de aanvraag uit.

    De aanvraag voert een query uit op het orchestrator-exemplaar voor de status. U moet een uiteindelijk antwoord krijgen dat er als volgt uitziet. Deze uitvoer laat zien dat het exemplaar is voltooid en de uitvoer of resultaten van de duurzame functie bevat.

    {
        "name": "Durable",
        "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. Als u wilt stoppen met fouten opsporen, drukt u op Shift + F5.

Nadat u hebt gecontroleerd of de functie correct wordt uitgevoerd op uw lokale computer, is het tijd om het project te publiceren in Azure.

Het project naar Azure publiceren

U moet een functie-app in uw Azure-abonnement hebben voordat u uw project publiceert. U kunt rechtstreeks vanuit Visual Studio een functie-app maken.

  1. Klik in Solution Explorer met de rechtermuisknop op het project en selecteer Publiceren. Selecteer vervolgens Azure in Target en Vervolgens.

    Schermopname van het publicatievenster.

  2. Selecteer De Azure-functie-app (Windows) voor het specifieke doel, waarmee een functie-app wordt gemaakt die wordt uitgevoerd in Windows en selecteer vervolgens Volgende.

    Schermopname van het publicatievenster met een specifiek doel.

  3. Kies een nieuwe Azure-functie maken in het functie-exemplaar...

    Schermopname van het maken van een nieuw exemplaar van een functie-app.

  4. Maak een nieuw exemplaar met behulp van de waarden die zijn opgegeven in de volgende tabel:

    Instelling Weergegeven als Beschrijving
    Naam Wereldwijd unieke naam Naam waarmee uw nieuwe functie-app uniek wordt aangeduid. Accepteer deze naam of voer een nieuwe in. Geldige tekens zijn a-z, 0-9 en -.
    Abonnement Uw abonnement Het te gebruiken Azure-abonnement. Accepteer dit abonnement of selecteer een nieuwe uit de vervolgkeuzelijst.
    Resourcegroep Naam van uw resourcegroep De resourcegroep waarin u uw functie-app wilt maken. Selecteer Nieuw om een nieuwe resourcegroep te maken. U kunt ook een bestaande resourcegroep kiezen in de vervolgkeuzelijst.
    Abonnemtsype Verbruik Wanneer u uw project publiceert in een functie-app die wordt uitgevoerd in een verbruiksabonnement, betaalt u alleen voor uitvoeringen van uw functie-app. Andere hostingabonnement kosten meer.
    Location Locatie van de app-service Kies een Locatie in een regio bij u in de buurt of in de buurt van andere services die door uw functies worden gebruikt.
    Azure Storage Storage-account voor algemeen gebruik Er is een Azure-opslagaccount vereist voor de Functions-runtime. Selecteer Nieuw om een algemeen opslagaccount te configureren. U kunt ook een bestaand account kiezen dat voldoet aan de vereisten voor een opslagaccount.
    Application Insights Application Insights-exemplaar Schakel Application Insights-integratie in voor uw functie-app. Selecteer Nieuw om een nieuw exemplaar te maken, in een nieuwe of in een bestaande Log Analytics-werkruimte. U kunt ook een bestaand exemplaar kiezen.

    Schermopname van het dialoogvenster App Service maken.

  5. Selecteer Maken om een functie-app en de bijbehorende resources te maken in Azure. De status van het maken van resources wordt linksonder in het venster weergegeven.

  6. Zorg ervoor dat het uitvoeren vanuit het pakketbestand is ingeschakeld in het Functions-exemplaar. Uw functie-app wordt geïmplementeerd met Zip-implementeren met de modus Uitvoeren vanuit pakket ingeschakeld. Zip Deploy is de aanbevolen implementatiemethode voor uw functions-project, wat resulteert in betere prestaties.

    Schermopname van het maken van het profiel voltooien.

  7. Selecteer Voltooien en selecteer op de pagina Publiceren de optie Publiceren om het pakket met uw projectbestanden te implementeren in de nieuwe functie-app in Azure.

    Nadat de implementatie is voltooid, wordt de hoofd-URL van de functie-app in Azure weergegeven op het tabblad Publiceren .

  8. Kies Openen in Azure Portal op het tabblad Publiceren in de sectie Hosting. Hiermee opent u de nieuwe Azure-resource voor de functie-app in Azure Portal.

    Schermopname van het bericht Geslaagd publiceren.

Uw functie testen in Azure

  1. Kopieer de basis-URL van de functie-app van de pagina Profiel publiceren. Vervang het localhost:port-deel van de URL dat u hebt gebruikt bij het lokaal testen van de functie door de nieuwe basis-URL.

    De URL die uw HTTP-trigger voor duurzame functies aanroept, moet de volgende indeling hebben:

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

  2. Plak deze nieuwe URL van de HTTP-aanvraag in de adresbalk van uw browser. U moet hetzelfde statusantwoord krijgen als voorheen wanneer u de gepubliceerde app gebruikt.

Volgende stappen

U hebt Visual Studio gebruikt om een Durable Function-app in C# te maken en te publiceren.