Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Schrijf stateful functies in een serverloze omgeving met behulp van Durable Functions, een functie van Azure Functions. Scenario's waarin Duurzame Functies nuttig zijn, zijn het coördineren van microservices en werkstromen, toestandsafhankelijke patronen zoals fan-out/fan-in en langlopende taken.
U kunt de Durable Task Scheduler als back-end voor uw Durable Functions gebruiken om indeling en runtimestatus van entiteiten op te slaan.
In deze snelstart, gaat u het volgende doen:
- Configureer een bestaande Durable Functions-app voor het gebruik van Durable Task Scheduler.
- Stel de Durable Task Emulator in voor lokale ontwikkeling.
- Implementeer uw app in Azure in het App Service-plan met behulp van Visual Studio Code.
- Controleer de status van uw app en taakhub op het dashboard Durable Task Scheduler.
Opmerking
Durable Task Scheduler ondersteunt momenteel alleen Durable Functions die worden uitgevoerd op Functions Premium - en App Service-abonnementen .
Vereiste voorwaarden
In deze quickstart wordt ervan uitgegaan dat u al een Azure Functions-project op uw lokale computer hebt met:
- Er zijn Durable Functions aan uw project toegevoegd, waaronder:
- Een orchestrator-functie.
- Een clientfunctie die de Durable Functions-app activeert.
- Het project dat is geconfigureerd voor lokale foutopsporing.
Als u niet aan deze vereisten voldoet, wordt u aangeraden te beginnen met een van de volgende quickstarts om een lokaal Functions-project in te stellen:
U hebt ook het volgende nodig:
- Docker is geïnstalleerd om de Durable Task Scheduler-emulator uit te voeren.
- Azurite geïnstalleerd.
- Een HTTP-testprogramma waarmee uw gegevens veilig blijven.
Het Durable Task Scheduler-pakket toevoegen
Installeer de nieuwste versie van het pakket Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged met behulp van de opdracht dotnet add package :
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged --prerelease
Opmerking
Voor de Durable Task Scheduler-extensie is Microsoft.Azure.Functions.Worker.Extensions.DurableTask1.2.2 of hoger vereist.
Werk in host.jsonde extensionBundle eigenschap bij om de preview-versie te gebruiken die het Durable Task Scheduler-pakket bevat:
{
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.29.0, 5.0.0)"
}
}
Host.json bijwerken
Werk de host.json als volgt bij om Durable Task Scheduler als back-end te gebruiken.
{
"extensions": {
"durableTask": {
"hubName": "%TASKHUB_NAME%",
"storageProvider": {
"type": "azureManaged",
"connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING"
}
}
}
}
local.settings.json configureren
Voeg verbindingsgegevens toe voor lokale ontwikkeling:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "<DEPENDENT ON YOUR PROGRAMMING LANGUAGE>",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;Authentication=None",
"TASKHUB_NAME": "default"
}
}
De Durable Task Emulator instellen
Haal de Docker-installatiekopie op die de emulator bevat.
docker pull mcr.microsoft.com/dts/dts-emulator:latestVoer de emulator uit.
docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latestDe volgende uitvoer geeft aan dat de emulator is gestart.
Noteer de poorten die beschikbaar zijn op docker desktop. De scheduler maakt meerdere poorten beschikbaar voor verschillende doeleinden:
-
8080: gRPC-eindpunt waarmee een app verbinding kan maken met de scheduler -
8082: Eindpunt voor durable task scheduler-dashboard
-
Lokaal testen
Ga naar de hoofdmap van uw app en start Azurite.
azurite startVoer de toepassing uit.
func startU ziet nu een lijst met de functies in uw app. Als u uw app hebt gemaakt volgens een van de quickstarts voor Durable Functions, ziet u iets vergelijkbaars met de volgende uitvoer:
Start een indelingsinstantie door een HTTP-aanvraag naar het URL-eindpunt
POSTte verzenden met behulp van het HTTP-testprogramma dat u hebt gekozen.Kopieer de URL-waarde voor
statusQueryGetUrien plak deze in de adresbalk van uw browser. Je zou de status van de orchestratie-instantie moeten zien:{ "name": "DurableFunctionsOrchestrationCSharp1", "instanceId": "b50f8b723f2f44149ab9fd2e3790a0e8", "runtimeStatus": "Completed", "input": null, "customStatus": null, "output": [ "Hello Tokyo!", "Hello Seattle!", "Hello London!" ], "createdTime": "2025-02-21T21:09:59Z", "lastUpdatedTime": "2025-02-21T21:10:00Z" }Voor meer informatie over het orchestratieresultaat kunt u het Durable Task Scheduler-dashboard bekijken via http://localhost:8082/.
Klik op de standaardtaakhub om het bijbehorende dashboard weer te geven.
Opmerking
Meer informatie over het Durable Task Scheduler-dashboard.
De Durable Task Scheduler-emulator slaat indelingsgegevens op in het geheugen, wat betekent dat alle gegevens verloren gaan wanneer deze worden afgesloten.
Ondervindt u problemen met testen? Raadpleeg de gids voor probleemoplossing.
Uw app uitvoeren in Azure
Noodzakelijke bronnen creëren
Maak een Durable Task Scheduler-exemplaar en Azure Functions-app in Azure volgens de integratiestroom voor de Function app. Met deze ervaring wordt automatisch op identiteit gebaseerde toegang ingesteld en worden de vereiste omgevingsvariabelen voor de app geconfigureerd voor toegang tot de scheduler.
Navigeer naar de blade voor het aanmaken van de functie-app en selecteer Functions Premium of App Service als hostingoptie.
Vul in het Functie-app maken (App Service) blade de informatie op het tabblad Basisbeginselen in.
Veld Beschrijving Abonnement Selecteer uw Azure-abonnement. Resourcegroep Selecteer een bestaande resourcegroep of klik op Nieuwe maken om een nieuwe te maken. Naam van functie-app Maak een unieke naam voor uw functie-app. Wilt u code of een containerafbeelding implementeren? Houd de optie Code geselecteerd. Runtimestack Selecteer de runtime die u voor deze quickstart gebruikt. Versie Selecteer uw runtime stack-versie. Regio Selecteer een van de ondersteunde regio's. Besturingssysteem Selecteer uw besturingssysteem. Selecteer het tabblad Durable Functions .
Kies Durable Task Scheduler als back-endprovider voor uw duurzame functies.
Maak een planningsresource aan. Met deze actie wordt automatisch een taakhub gemaakt.
Veld Beschrijving Back-end voor opslag Selecteer Durable Task Scheduler. Regio Het wordt aanbevolen dat de planner- en functie-app-regio's hetzelfde moeten zijn. Duurzame taakplanner Gebruik de aangeboden scheduler-naam of klik op Nieuwe maken om een aangepaste naam te maken. Planning Alleen Dedicated is momenteel beschikbaar. Capaciteitseenheden Op dit moment kunt u slechts één capaciteitseenheid als optie kiezen. Klik op Beoordelen en maken om het aanmaken van de resource te beoordelen.
Er wordt automatisch een door de gebruiker toegewezen beheerde identiteit met de vereiste RBAC-machtiging (op rollen gebaseerd toegangsbeheer) gemaakt en toegevoegd aan de functie-app. U vindt in de overzichtsweergave informatie met betrekking tot de beheerde identiteitsresource, zoals:
De rol die eraan is toegewezen (Inzender voor duurzame taakgegevens)
De opdracht op het niveau van de taakhub
Klik op Maken zodra de validatie is geslaagd.
Implementatie van middelen kan ongeveer 15 tot 20 minuten duren. Zodra dat is voltooid, kunt u uw app implementeren in Azure.
Uw functie-app implementeren in Azure
Belangrijk
Bij het implementeren op een bestaande functie-app wordt de inhoud van die app altijd overschreven in Azure.
Voer in het opdrachtenpalet Azure Functions in en selecteer vervolgens Azure Functions: Implementeren in functie-app.
Selecteer de functie-app die u zojuist hebt gemaakt. Wanneer u wordt gevraagd om eerdere implementaties te overschrijven, selecteert u Implementeren om uw functiecode te implementeren in de nieuwe functie-app-resource.
Wanneer 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 te zien.
Apps in Functions Premium-abonnement
Als uw app wordt uitgevoerd in het Functions Premium-abonnement, schakelt u de instelling Bewaking van runtimeschaal na de implementatie in om ervoor te zorgen dat uw app automatisch schaalt op basis van de belasting.
az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites
Uw functie-app testen
Voer de volgende opdracht uit om de URL van uw functie op te halen:
az functionapp function list --resource-group <RESOURCE_GROUP_NAME> --name <FUNCTION_APP_NAME> --query '[].{Function:name, URL:invokeUrlTemplate}' --output json
Orchestratiestatus controleren
Controleer de status van de orkestratie-instantie en de activiteitsdetails op het Durable Task Scheduler-dashboard. Voor toegang tot het dashboard moet u zich aanmelden.
Opmerking
In de volgende instructie ziet u een roltoewijzing die is afgestemd op een specifieke taakhub. Als u toegang nodig hebt tot alle taakhubs in een planner, voert u de toewijzing uit op het niveau van de planner.
Navigeer naar de resource van de herbruikbare taakplanner in het portaal.
Klik op de naam van een taakhub.
Selecteer toegangsbeheer (IAM) in het linkermenu.
Klik op Toevoegen om een roltoewijzing toe te voegen.
Zoek en selecteer Inzender voor duurzame taakgegevens. Klik op Volgende.
Selecteer op het tabblad Leden voor Toegang toewijzen aangebruiker, groep of service-principal.
Klik voor leden op + Leden selecteren.
Zoek in het deelvenster Selecteer leden naar uw naam of e-mailadres.
Kies uw e-mail en klik op de knop Selecteren .
Klik op Controleren en toewijzen om het toewijzen van de rol te voltooien.
Zodra de rol is toegewezen, klikt u op Overzicht in het linkermenu van de taakhubresource en gaat u naar de dashboard-URL in de bovenste sectie Essentials .
Hulpmiddelen opruimen
Als u de resources die u hebt gemaakt niet meer nodig hebt om de quickstart te voltooien, verwijdert u de resourcegroep en alle gerelateerde resources om gerelateerde kosten in uw Azure-abonnement te voorkomen.
Volgende stappen
- Meer informatie over het Durable Task Scheduler-dashboard.
- Los eventuele fouten op die optreden tijdens het gebruik van Durable Task Scheduler.