Freigeben über


Schnellstart: Konfigurieren einer Durable Functions-App mit dem Azure Functions Durable Task Scheduler

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:
  • 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

  1. Ziehen Sie das Docker-Image, das den Emulator enthält.

    docker pull mcr.microsoft.com/dts/dts-emulator:latest
    
  2. Führen Sie den Emulator aus.

    docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latest
    

    Die folgende Ausgabe gibt an, dass der Emulator erfolgreich gestartet wurde.

    Screenshot, der zeigt, dass der Emulator erfolgreich am Terminal gestartet wurde.

  3. 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

    Screenshot der Ports in Docker.

Lokales Testen

  1. Wechseln Sie zum Stammverzeichnis Ihrer App, und starten Sie Azurite.

    azurite start
    
  2. Führen Sie die Anwendung aus.

    func start
    

    In 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:

    Screenshot der Funktionen, die beim lokalen Ausführen der App aufgeführt sind.

  3. Starten Sie eine Orchestrierungsinstanz, indem Sie eine HTTP-Anforderung an den URL-Endpunkt POST senden, indem Sie das von Ihnen ausgewählte HTTP-Testtool verwenden.

  4. Kopieren Sie den URL-Wert, statusQueryGetUri und 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"
      }
    
  5. 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.

  6. 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.

  1. Navigieren Sie zum Blade für die Erstellung von Apps.

    Screenshot der Hostingoptionen für Funktions-Apps.

  2. Im Blade Funktions-App erstellen (Flex-Verbrauch) geben Sie die Informationen auf der Registerkarte Grundlagen ein.

    Screenshot der Registerkarte

    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 ".
  3. Wählen Sie die Registerkarte "Dauerhafte Funktionen" aus .

  4. Wählen Sie azure managed: Durable Task Scheduler als Back-End-Anbieter für Ihre dauerhaften Funktionen aus.

  5. Erstellen Sie eine Scheduler-Ressource. Diese Aktion erstellt automatisch einen Aufgabenhub.

    Screenshot der Erstellung einer Flex Consumption Function-App.

    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.
  6. 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

      Screenshot der Felder und Eigenschaften, die auf der Registerkarte

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

  1. Geben Sie in der Befehlspalette Azure Functions: In Funktions-App bereitstellen ein, und wählen Sie diese Option aus.

  2. 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.

  3. 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.

    Screenshot des Fensters „Ausgabe anzeigen“.

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.

  1. Navigieren Sie im Portal zur Ressource "Durable Task Scheduler".

  2. Wählen Sie einen Aufgabenhubnamen aus.

  3. Wählen Sie im linken Menü Zugriffssteuerung (IAM) aus.

  4. Klicken Sie auf "Hinzufügen" , um eine Rollenzuweisung hinzuzufügen.

    Screenshot des Hinzufügens der Rollenzuweisung im Bereich

  5. Suchen Sie Mitwirkender an langlebigen Aufgabendaten, und wählen Sie die Rolle aus. Klicke auf Weiter.

    Screenshot der Auswahl der Rollenzuweisung „Mitwirkender an langlebigen Aufgabendaten“ im Portal

  6. Wählen Sie auf der Registerkarte " Mitglieder " für "Zugriff zuweisen"die Option "Benutzer", "Gruppe" oder "Dienstprinzipal" aus.

  7. Klicken Sie für Mitglieder auf +Mitglieder auswählen.

  8. Suchen Sie im Bereich "Mitglieder auswählen " nach Ihrem Namen oder Ihrer E-Mail:

    Screenshot der Auswahl des vom Benutzer zugewiesenen verwalteten Identitätstyps im Portal.

  9. Wählen Sie Ihre E-Mail aus, und klicken Sie auf die Schaltfläche " Auswählen ".

  10. Klicken Sie auf "Überprüfen" und "Zuweisen ", um die Zuweisung der Rolle abzuschließen.

  11. 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