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.
Vereisten
Vereisten om deze zelfstudie te voltooien:
- Installeer Visual Studio Code.
- De Azure Functions VS Code-extensie installeren
- Installeer de azure Functions VS Code-extensieversie
1.10.4
of hoger.
- Zorg ervoor dat u beschikt over de nieuwste versie van de Azure Functions Core Tools.
- 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.
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...
.Kies een lege map voor uw project en kies Selecteren.
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.
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
.
- Gebruik het menu Beeld of Ctrl + Shift + ' om een nieuwe terminal te openen in VS Code.
- Installeer het
durable-functions
NPM-pakket met duurzame functies doornpm install durable-functions
uit te voeren in de hoofdmap van de functie-app.
- Installeer de preview-versie van het
durable-functions
npm-pakket door deze uit te voerennpm 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.
In het opdrachtenpalet zoekt en selecteert u
Azure Functions: Create Function...
.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
In het opdrachtenpalet zoekt en selecteert u
Azure Functions: Create Function...
.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)
In het opdrachtenpalet zoekt en selecteert u
Azure Functions: Create Function...
.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.
In het opdrachtenpalet zoekt en selecteert u
Azure Functions: Create Function...
.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.
- Stel een onderbrekingspunt in code van de
Hello
-activiteitsfunctie (Hello/index.js) in om uw functie te testen. Druk op F5 of selecteerDebug: 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.
- Als u uw functie wilt testen, stelt u een onderbrekingspunt in de
hello
activiteitsfunctiecode (src/functions/hello.js). Druk op F5 of selecteerDebug: 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.
Durable Functions vereist een Azure-opslagaccount om te kunnen worden uitgevoerd. Kies Opslagaccount selecteren wanneer VS Code u vraagt een opslagaccount te 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 Kopieer het URL-eindpunt van de door HTTP getriggerde functie in het deelvenster Terminal.
- 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 methttp://localhost:7071/api/orchestrators/HelloOrchestrator
.
- 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 methttp://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.
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" }
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.
Als u nog niet bent aangemeld, kiest u het Azure-pictogram op de activiteitenbalk. Kies vervolgens in het gebied Resources aanmelden bij Azure....
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 ....
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.
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.
Kies het Azure-pictogram in de activiteitenbalk. Selecteer vervolgens in het gebied Resources het + pictogram en kies de optie Functie-app maken in Azure .
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 .
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.
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....
Wanneer u wordt gevraagd om eerdere implementaties te overschrijven, selecteert u Implementeren om uw functiecode te implementeren in de nieuwe functie-app-resource.
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.
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.
- 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
- 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
- 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.