Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Schreiben Sie zustandsbehaftete Funktionen in einer serverlosen Umgebung mit dauerhaften Funktionen, einem Feature von Azure Functions. Szenarien, in denen dauerhafte Funktionen nützlich sind, umfassen die Orchestrierung von Mikroservices und Workflows, zustandsorientierte Muster wie Fan-Out/Fan-In sowie lang andauernde Aufgaben.
Sie können den Durable Task Scheduler als Back-End für Ihre dauerhaften Funktionen verwenden, um den Orchestrierungs- und Entitätslaufzeitstatus zu speichern.
In dieser Schnellstartanleitung führen Sie die folgenden Schritte aus:
- Konfigurieren Sie eine vorhandene App für dauerhafte Funktionen, um den Durable Task Scheduler zu verwenden.
- Richten Sie den Emulator für dauerhafte Aufgaben für die lokale Entwicklung ein.
- Stellen Sie Ihre App im App Service-Plan mit Visual Studio Code in Azure bereit.
- Überwachen Sie den Status Ihrer App und des Aufgabenhubs auf dem Dashboard "Durable Task Scheduler".
Voraussetzungen
In dieser Schnellstartanleitung wird davon ausgegangen, dass Sie bereits über ein Azure Functions-Projekt auf Ihrem lokalen Computer verfügen mit:
- Zu Ihrem Projekt hinzugefügte dauerhafte Funktionen, einschließlich:
- Eine Orchestratorfunktion.
- Eine Clientfunktion, die die Durable Functions-App auslöst.
- Das Projekt, das für das lokale Debuggen konfiguriert ist.
Wenn Sie diese Voraussetzungen nicht erfüllen, empfehlen wir, mit einem der folgenden Schnellstarts zu beginnen, um ein lokales Funktionenprojekt einzurichten:
Außerdem benötigen Sie:
- Docker installiert, um den Emulator für den dauerhaften Aufgabenplaner auszuführen.
- Azurite installiert.
- Ein HTTP-Testtool , das Ihre Daten sicher hält.
Hinzufügen des Pakets "Durable Task Scheduler"
Installieren Sie die neueste Version des Pakets "Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged ", indem Sie den Befehl "dotnet add package" verwenden:
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged --prerelease
Hinweis
Die Erweiterung "Durable Task Scheduler" erfordert Microsoft.Azure.Functions.Worker.Extensions.DurableTask-Version1.2.2 oder höher.
Aktualisieren Sie in host.jsondie extensionBundle Eigenschaft so, dass sie die Vorschauversion verwendet, die das Paket "Durable Task Scheduler" enthält:
{
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.29.0, 5.0.0)"
}
}
Aktualisieren von host.json
Aktualisieren Sie die host.json wie folgt, um den Durable Task Scheduler als Back-End zu verwenden.
{
"extensions": {
"durableTask": {
"hubName": "%TASKHUB_NAME%",
"storageProvider": {
"type": "azureManaged",
"connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING"
}
}
}
}
Konfigurieren Sie local.settings.json
Hinzufügen von Verbindungsinformationen für die lokale Entwicklung:
{
"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"
}
}
Einrichten des Emulators für dauerhafte Aufgaben
Ziehen Sie das Docker-Image, das den Emulator enthält.
docker pull mcr.microsoft.com/dts/dts-emulator:latestFühren Sie den Emulator aus.
docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latestDie folgende Ausgabe gibt an, dass der Emulator erfolgreich gestartet wurde.
Notieren Sie sich die Ports, die auf Docker-Desktop verfügbar gemacht werden. Der Scheduler macht mehrere Ports für unterschiedliche Zwecke verfügbar:
-
8080: gRPC-Endpunkt, der es einer App ermöglicht, eine Verbindung mit dem Scheduler herzustellen -
8082: Endpunkt für das Dashboard des langlebigen Aufgabenplaners
-
Lokales Testen
Wechseln Sie zum Stammverzeichnis Ihrer App, und starten Sie Azurite.
azurite startFühren Sie die Anwendung aus.
func startIn Ihrer App sollte eine Liste der Funktionen angezeigt werden. Wenn Sie Ihre App gemäß einem der Durable Functions-Schnellstarts erstellt haben, sollte Ihre Ausgabe der folgenden ähneln:
Starten Sie eine Orchestrierungsinstanz, indem Sie eine HTTP-Anforderung an den URL-Endpunkt
POSTsenden, indem Sie das von Ihnen ausgewählte HTTP-Testtool verwenden.Kopieren Sie den URL-Wert,
statusQueryGetUriund fügen Sie ihn in die Adressleiste Ihres Browsers ein. Der Status der Orchestrierungsinstanz sollte angezeigt werden:{ "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" }Wenn Sie weitere Details zur Orchestrierungsinstanz anzeigen möchten, navigieren Sie zu http://localhost:8082/, um auf das Dashboard für den langlebigen Aufgabenplaner zuzugreifen.
Klicken Sie auf den Standardmäßigen Aufgabenhub, um das Dashboard anzuzeigen.
Hinweis
Erfahren Sie mehr über das Dashboard "Durable Task Scheduler".
Der Emulator "Durable Task Scheduler" speichert Orchestrierungsdaten im Arbeitsspeicher, was bedeutet, dass alle Daten verloren gehen, wenn er heruntergefahren wird.
Treten Probleme beim Testen auf? Weitere Informationen finden Sie im Handbuch zur Problembehandlung.
Ausführen Ihrer App in Azure
Erstellen der erforderlichen Ressourcen
Erstellen Sie eine Instanz des langlebigen Aufgabenplaners und eine Azure Functions-App in Azure, indem Sie dem integrierten Ablauf zur Erstellung von Funktions-Apps folgen. Diese Oberfläche richtet automatisch identitätsbasierten Zugriff ein und konfiguriert die erforderlichen Umgebungsvariablen für die App für den Zugriff auf den Scheduler.
Navigieren Sie zum Blade für die Erstellung von Apps.
Im Blade Funktions-App erstellen (Flex-Verbrauch) geben Sie die Informationen auf der Registerkarte Grundlagen ein.
Feld BESCHREIBUNG Abonnement Wählen Sie Ihr Azure-Abonnement. Ressourcengruppe Wählen Sie eine vorhandene Ressourcengruppe aus, oder klicken Sie auf "Neu erstellen", um eine neue zu erstellen. Name der Funktions-App Erstellen Sie einen eindeutigen Namen für Ihre Funktions-App. Möchten Sie Code oder ein Containerimage bereitstellen? Lassen Sie die Option "Code " ausgewählt. Region Wählen Sie eine der unterstützten Regionen aus. Runtimestapel Wählen Sie die Laufzeit aus, die Sie für diese Schnellstartanleitung verwenden. Version Wählen Sie Ihre Version des Runtimestapels aus. Instanzgröße Wählen Sie eine Instanzgröße aus, oder verwenden Sie die Standardauswahl. Weitere Informationen zu Instanzengrößen. Zonenredundanz Verlassen Sie die Standardeinstellung "Deaktiviert ". Wählen Sie die Registerkarte "Dauerhafte Funktionen" aus .
Wählen Sie azure managed: Durable Task Scheduler als Back-End-Anbieter für Ihre dauerhaften Funktionen aus.
Erstellen Sie eine Scheduler-Ressource. Diese Aktion erstellt automatisch einen Aufgabenhub.
Feld BESCHREIBUNG Speicher-Back-End Wählen Sie azure managed: Durable Task Scheduler aus. Region Stellen Sie sicher, dass die Bereiche der Planer- und Funktions-App identisch sind. Langlebiger Aufgabenplaner Verwenden Sie den angebotenen Zeitplannamen, oder klicken Sie auf "Neu erstellen", um einen benutzerdefinierten Namen zu erstellen. Planen Wählen Sie den Preisplan aus, der ihrem Projekt am besten entspricht. Überprüfen Sie das Handbuch zum Auswählen eines Orchestrierungsframeworks , um zu ermitteln, welcher Plan für die Produktionsverwendung am besten geeignet ist. Kapazitätseinheiten Gilt nur, wenn der Tarifplan "Dediziert" ausgewählt ist. Sie können bis zu 3 Kapazitätseinheiten auswählen. Klicken Sie auf "Überprüfen" und "Erstellen ", um die Ressourcenerstellung zu überprüfen.
Eine vom Benutzer zugewiesene verwaltete Identität mit der erforderlichen rollenbasierten Zugriffssteuerungsberechtigung (RBAC) wird automatisch erstellt und der Funktions-App hinzugefügt. In der Zusammenfassungsansicht finden Sie Informationen zur verwalteten Identitätsressource, z. B.:
Die zugewiesene Rolle (Mitwirkende an langlebigen Aufgabendaten)
Die Zuordnung, die sich auf die Ebene des Aufgabenhubs bezieht
Klicken Sie auf "Erstellen ", nachdem die Überprüfung bestanden wurde.
Die Ressourcenbereitstellung kann etwa 15 bis 20 Minuten dauern. Sobald dies abgeschlossen ist, können Sie Ihre App in Azure bereitstellen.
Bereitstellen Ihrer Funktions-App in Azure
Von Bedeutung
Bei der Bereitstellung in einer vorhandenen Funktions-App wird der Inhalt dieser App in Azure immer überschrieben.
Geben Sie in der Befehlspalette Azure Functions: In Funktions-App bereitstellen ein, und wählen Sie diese Option aus.
Wählen Sie die eben erstellte Funktions-App aus. Wenn Sie aufgefordert werden, vorherige Bereitstellungen zu überschreiben, wählen Sie Bereitstellen aus, um Ihren Funktionscode in der neuen Funktions-App-Ressource bereitzustellen.
Wählen Sie nach Abschluss der Bereitstellung Ausgabe anzeigen aus, um die Erstellungs- und Bereitstellungsergebnisse (auch die von Ihnen erstellten Azure-Ressourcen) anzuzeigen. Wenn Sie die Benachrichtigung übersehen haben, wählen Sie unten rechts das Glockensymbol aus, um sie erneut anzuzeigen.
Apps im Functions Premium-Plan
Wenn Ihre App im Functions Premium-Plan ausgeführt wird, aktivieren Sie nach der Bereitstellung die Einstellung zur Laufzeitskalierungsüberwachung, um sicherzustellen, dass Ihre App basierend auf der Last automatisch skaliert wird.
az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites
Testen Ihrer Funktionsanwendung
Führen Sie den folgenden Befehl aus, um die URL Ihrer Funktion abzurufen:
az functionapp function list --resource-group <RESOURCE_GROUP_NAME> --name <FUNCTION_APP_NAME> --query '[].{Function:name, URL:invokeUrlTemplate}' --output json
Orchestrierungsstatus überprüfen
Überprüfen Sie den Status der Orchestrierungsinstanz und der Aktivitätsdetails im Dashboard "Durable Task Scheduler". Für den Zugriff auf das Dashboard müssen Sie sich anmelden.
Hinweis
Die folgende Anweisung zeigt eine Rollenzuweisung, die auf einen bestimmten Aufgabenhub festgelegt ist. Wenn Sie Zugriff auf alle Aufgabenhubs in einem Planer benötigen, führen Sie die Zuordnung auf der Planerebene aus.
Navigieren Sie im Portal zur Ressource "Durable Task Scheduler".
Wählen Sie einen Aufgabenhubnamen aus.
Wählen Sie im linken Menü Zugriffssteuerung (IAM) aus.
Klicken Sie auf "Hinzufügen" , um eine Rollenzuweisung hinzuzufügen.
Suchen Sie Mitwirkender an langlebigen Aufgabendaten, und wählen Sie die Rolle aus. Klicke auf Weiter.
Wählen Sie auf der Registerkarte " Mitglieder " für "Zugriff zuweisen"die Option "Benutzer", "Gruppe" oder "Dienstprinzipal" aus.
Klicken Sie für Mitglieder auf +Mitglieder auswählen.
Suchen Sie im Bereich "Mitglieder auswählen " nach Ihrem Namen oder Ihrer E-Mail:
Wählen Sie Ihre E-Mail aus, und klicken Sie auf die Schaltfläche " Auswählen ".
Klicken Sie auf "Überprüfen" und "Zuweisen ", um die Zuweisung der Rolle abzuschließen.
Nachdem die Rolle zugewiesen wurde, klicken Sie im linken Menü der Task Hub-Ressource auf "Übersicht ", und navigieren Sie zur Dashboard-URL im oberen Essentials-Abschnitt .
Bereinigen von Ressourcen
Wenn Sie Ihre erstellten Ressourcen nach Abschluss des Schnellstarts nicht mehr benötigen, löschen Sie die Ressourcengruppe und alle zugehörigen Ressourcen, um damit verbundene Kosten in Ihrem Azure-Abonnement zu vermeiden.
Nächste Schritte
- Erfahren Sie mehr über das Dashboard "Durable Task Scheduler".
- Beheben Sie fehler, die beim Verwenden des durable Task Scheduler auftreten können.