Uw eerste duurzame functie maken in JavaScript

Durable Functions is een extensie 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 de Azure Functions-extensie van 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 aan elkaar gekoppeld. Vervolgens publiceert u de functiecode op Azure.

Belangrijk

De inhoud van dit artikel wordt gewijzigd op basis van uw keuze van het Node.js programmeermodel in de selector boven aan de pagina. Het v4-model is algemeen beschikbaar en is ontworpen voor een flexibelere en intuïtievere ervaring voor JavaScript- en TypeScript-ontwikkelaars. Meer informatie over de verschillen tussen v3 en v4 in de migratiehandleiding.

Schermopname van een Edge-venster. In het venster ziet u de uitvoer van het aanroepen van een eenvoudige duurzame functie in Azure.

Vereisten

Vereisten om deze zelfstudie te voltooien:

  • Zorg ervoor dat u de versie v4.0.5382 van Azure Functions Core Tools of hoger hebt.
  • Voor Durable Functions is een Azure-opslagaccount vereist. U hebt een Azure-abonnement nodig.
  • Zorg ervoor dat versie 16.x+ van Node.js geïnstalleerd.
  • Zorg ervoor dat versie 18.x+ van Node.js is geïnstalleerd.

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 opdrachtenpalet van Visual Studio Code. De opdracht getiteld 'Azure Functions: Nieuw project maken...' is gemarkeerd.

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

  1. Volg de instructies en geef de volgende informatie op:

    Prompt Weergegeven als Beschrijving
    Selecteer een taal voor uw functie-appproject JavaScript Maak een lokaal Node.js Functions-project.
    Een JavaScript-programmeermodel selecteren Model V3 Kies het V3-programmeermodel.
    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 Opent VS Code opnieuw in de map die u hebt geselecteerd.
  1. Volg de instructies en geef de volgende informatie op:

    Prompt Weergegeven als Beschrijving
    Selecteer een taal voor uw functie-appproject JavaScript Maak een lokaal Node.js Functions-project.
    Een JavaScript-programmeermodel selecteren Model V4 Kies het V4-programmeermodel.
    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 Opent VS Code opnieuw in de map die u hebt geselecteerd.

Visual Studio Code installeert zo 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.

Er wordt ook een package.json bestand gemaakt in de hoofdmap.

Het NPM-pakket voor Durable Functions installeren

Gebruik een bibliotheek met de naam durable-functions als u wilt werken met Durable Functions in een Node.js-functie-app.

Als u het V4-programmeermodel wilt gebruiken, moet u de preview-versie v3.x van durable-functions.

  1. Gebruik het menu Beeld of Ctrl + Shift + ' om een nieuwe terminal te openen in VS Code.
  1. Installeer het durable-functions NPM-pakket met duurzame functies door npm install durable-functions uit te voeren in de hoofdmap van de functie-app.
  1. Installeer de preview-versie van het durable-functions npm-pakket door deze uit te voeren npm install durable-functions@preview in de hoofdmap van de functie-app.

Uw functies maken

De meest eenvoudige Durable Functions-app bevat drie functies:

  • Orchestrator-functie: beschrijft een werkstroom die andere functies organiseert.
  • Activiteitfunctie: wordt aangeroepen door de Orchestrator-functie, voert het werk uit en retourneert optioneel een waarde.
  • Clientfunctie: een reguliere Azure-functie waarmee een Orchestrator-functie wordt gestart. In dit voorbeeld wordt een door HTTP geactiveerde functie gebruikt.

Orchestrator-functie

U gebruikt een sjabloon 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 instructies en geef de volgende informatie op:

    Prompt Weergegeven als Beschrijving
    Selecteer een sjabloon voor uw functie Durable Functions-orchestrator Een Durable Functions-indeling maken
    Kies een duurzaam opslagtype. Azure Storage (standaard) Selecteer de opslagback-end die wordt gebruikt voor Durable Functions.
    Geef een functienaam op HelloOrchestrator Naam van uw Durable Function

U hebt een orchestrator toegevoegd om de activiteitsfuncties te coördineren. Open HelloOrchestrator/index.js om de Orchestrator-functie weer te geven. Elke aanroep van context.df.callActivity roept een activiteitfunctie aan met de naam Hello.

Vervolgens voegt u de Hello-activiteitsfunctie toe waarnaar wordt verwezen.

Activiteitsfunctie

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

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

    Prompt Weergegeven als Beschrijving
    Selecteer een sjabloon voor uw functie Durable Functions-activiteit Een ectiviteitsfunctie maken
    Geef een functienaam op Hello (Hallo) Naam van uw activiteitsfunctie

U hebt de Hello-activiteitsfunctie toegevoegd die wordt aangeroepen door de orchestrator. Open Hello/index.js om te zien dat deze een naam als invoer gebruikt en een begroeting retourneert. Een activiteitsfunctie is waar u 'het echte werk' uitvoert in uw werkstroom: werk zoals het maken van een databaseaanroep of het uitvoeren van een niet-deterministische berekening.

Ten slotte voegt u een door HTTP geactiveerde functie toe waarmee de indeling wordt gestart.

Clientfunctie (HTTP-starter)

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

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

    Prompt Weergegeven als Beschrijving
    Selecteer een sjabloon voor uw functie HTTP-starter Durable Functions Een HTTP-starterfunctie maken
    Geef een functienaam op DurableFunctionsHttpStart Naam van uw activiteitsfunctie
    Autorisatieniveau Anoniem Sta omwille van de demo toe dat de functie wordt aangeroepen zonder verificatie

U hebt een door HTTP geactiveerde functie toegevoegd waarmee een indeling wordt gestart. Open DurableFunctionsHttpStart/index.js om te zien dat deze client.startNew gebruikt om een nieuwe indeling te starten. Vervolgens wordt client.createCheckStatusResponse gebruikt om een HTTP-antwoord te retourneren met URL's die kunnen worden gebruikt om de nieuwe indeling te controleren en beheren.

U hebt nu een Durable Functions-app die lokaal kan worden uitgevoerd en in Azure kan worden geïmplementeerd.

Een van de voordelen van het V4-programmeermodel is de flexibiliteit waar u uw functies schrijft. In het V4-model kunt u één sjabloon gebruiken om alle drie de functies in één bestand in uw project te maken.

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

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

    Prompt Weergegeven als Beschrijving
    Selecteer een sjabloon voor uw functie Durable Functions-orchestrator Maak een bestand met een Durable Functions-indeling, een activiteitsfunctie en een Durable Client-starterfunctie.
    Een duurzaam opslagtype kiezen Azure Storage (standaard) Selecteer de opslagback-end die wordt gebruikt voor Durable Functions.
    Geef een functienaam op hallo De naam die wordt gebruikt voor uw duurzame functies

Open src/functions/hello.js om de functies weer te geven die u hebt gemaakt.

U hebt een orchestrator gemaakt die wordt aangeroepen helloOrchestrator om activiteitsfuncties te coördineren. Elke aanroep om een activiteitsfunctie aan te context.df.callActivity roepen die wordt aangeroepen hello.

U hebt ook de hello activiteitsfunctie toegevoegd die wordt aangeroepen door de orchestrator. In hetzelfde bestand ziet u dat het een naam als invoer neemt en een begroeting retourneert. Een activiteitsfunctie is waar u 'het echte werk' uitvoert in uw werkstroom: werk zoals het maken van een databaseaanroep of het uitvoeren van een niet-deterministische berekening.

Ten slotte hebt u ook een door HTTP geactiveerde functie toegevoegd waarmee een indeling wordt gestart. In hetzelfde bestand ziet u dat het wordt gebruikt client.startNew om een nieuwe indeling te starten. Vervolgens wordt client.createCheckStatusResponse gebruikt om een HTTP-antwoord te retourneren met URL's die kunnen worden gebruikt om de nieuwe indeling te controleren en beheren.

U hebt nu een Durable Functions-app die lokaal kan worden uitgevoerd en in Azure kan worden geïmplementeerd.

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. Stel een onderbrekingspunt in code van de Hello-activiteitsfunctie (Hello/index.js) in om uw functie te testen. Druk op F5 of selecteer Debug: Start Debugging in het opdrachtpalet om het project met de functie-app te starten. De uitvoer van Core Tools wordt weergegeven in het deelvenster Terminal.
  1. Als u uw functie wilt testen, stelt u een onderbrekingspunt in de hello activiteitsfunctiecode (src/functions/hello.js). Druk op F5 of selecteer Debug: Start Debugging in het opdrachtpalet om het project met de functie-app te starten. De uitvoer van Core Tools wordt weergegeven in het deelvenster Terminal.

Notitie

Raadpleeg de Durable Functions-diagnoses voor meer informatie over foutopsporing.

  1. Durable Functions vereist een Azure-opslagaccount om te kunnen worden uitgevoerd. Kies Opslagaccount selecteren wanneer VS Code u vraagt een opslagaccount te selecteren.

    Schermopname van een visual Studio Code-waarschuwingsvenster. In het venster staat 'Als u fouten wilt opsporen, moet u een opslagaccount selecteren voor intern gebruik door de Azure Functions-runtime'. De knop met de titel 'Opslagaccount selecteren' is gemarkeerd.

  2. 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
  3. Kopieer het URL-eindpunt van de door HTTP getriggerde functie in het deelvenster Terminal.

    Schermopname van het visual Studio Code-terminalpaneel. In de terminal ziet u de uitvoer van het lokaal uitvoeren van een Durable Functions-app. De tabel met de titel 'terminal' en de URL van de HTTP-startersfunctie zijn gemarkeerd.

  1. Verzend met behulp van uw browser of een hulpprogramma zoals Postman of cURL een HTTP POST-aanvraag naar het URL-eindpunt. Vervang het laatste segment door de naam van de Orchestrator-functie (HelloOrchestrator). De URL moet vergelijkbaar zijn met http://localhost:7071/api/orchestrators/HelloOrchestrator.
  1. Verzend met behulp van uw browser of een hulpprogramma zoals Postman of cURL een HTTP POST-aanvraag naar het URL-eindpunt. Vervang het laatste segment door de naam van de Orchestrator-functie (helloOrchestrator). De URL moet vergelijkbaar zijn met http://localhost:7071/api/orchestrators/helloOrchestrator.

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

  1. 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 voeren.

    De aanvraag voert een query uit op het indelingsexemplaar voor de status. U moet een eindige reactie krijgen, die laat zien dat het exemplaar is voltooid en die de uitvoer of resultaten van de Durable Function bevat. Deze ziet er als volgt uit:

    {
        "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"
    }
    
    {
        "name": "helloOrchestrator",
        "instanceId": "6ba3f77933b1461ea1a3828c013c9d56",
        "runtimeStatus": "Completed",
        "input": "",
        "customStatus": null,
        "output": [
            "Hello, Tokyo",
            "Hello, Seattle",
            "Hello, Cairo"
        ],
        "createdTime": "2023-02-13T23:02:21Z",
        "lastUpdatedTime": "2023-02-13T23:02:25Z"
    }
    
  2. Druk op Shift + F5 in VS Code als u het opsporen van fouten wilt opsporen.

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

Notitie

Als u het programmeermodel voor V4-knooppunten wilt gebruiken, moet u ervoor zorgen dat uw app wordt uitgevoerd op ten minste versie 4.25 van de Azure Functions-runtime.

  1. Kopieer de URL van de HTTP-trigger vanuit het deelvenster Output (Uitvoer). De URL die uw HTTP-geactiveerde functie aanroept, moet de volgende indeling hebben: https://<functionappname>.azurewebsites.net/api/orchestrators/HelloOrchestrator
  1. Kopieer de URL van de HTTP-trigger vanuit het deelvenster Output (Uitvoer). De URL die uw HTTP-geactiveerde functie aanroept, moet de volgende indeling hebben: https://<functionappname>.azurewebsites.net/api/orchestrators/helloOrchestrator
  1. Plak deze nieuwe URL van de HTTP-aanvraag in de adresbalk van uw browser. U krijgt dezelfde statusreactie als eerder, toen u de gepubliceerde app gebruikte.

Volgende stappen

U hebt Visual Studio Code gebruikt om een duurzame JavaScript-functie-app te maken en te publiceren.