Schnellstart: Konfigurieren einer Durable Functions-App für die Verwendung eines dauerhaften Aufgabenplanungsmoduls

Verwenden Sie den Durable Task Scheduler als Back-End für Ihre Durable Functions-Apps zum Speichern des Orchestrierungs- und Entitätslaufzeitzustands. In dieser Schnellstartanleitung klonen Sie ein Hello Cities-Beispiel, das bereits für die Verwendung des Durable Task Scheduler konfiguriert ist, führen Sie es lokal mit dem Emulator aus, und stellen Sie es dann für Azure bereit.

  • Klonen Sie das für Durable Task Scheduler vorkonfigurierte Beispielprojekt „Hello Cities“.
  • Richten Sie den Emulator "Durable Task Scheduler" für die lokale Entwicklung ein.
  • Führen Sie das Beispiel aus, und überprüfen Sie die Orchestrierungsausgabe.
  • Stellen Sie Ihre App für Azure bereit, und überwachen Sie sie über das Dashboard "Durable Task Scheduler".

Voraussetzungen

Tip

Sobald der Emulator ausgeführt wird, können Sie auf das Dashboard http://localhost:8082 "Durable Task Scheduler" zugreifen, um Orchestrierungen zu überwachen.

Ausführen des Schnellstartbeispiels

Installieren Sie die neueste Version des Pakets Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged mithilfe des Befehls dotnet add package:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged --prerelease

Hinweis

Für die Erweiterung "Durable Task Scheduler" ist Microsoft.Azure.Functions.Worker.Extensions.DurableTask-Version 1.2.2 oder höher erforderlich.

  1. Erstellen und Starten der Funktions-App:

    dotnet build
    func start
    

Aktualisieren Sie in host.json die extensionBundle-Eigenschaft, um Version 4.32.0 oder höher zu verwenden, die die Unterstützung für den Durable Task Scheduler umfasst.

{
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[4.32.0, 5.0.0)"
  }
}
  1. Starten Sie die Funktions-App:

    func start
    
  1. Erstellen und Starten der Funktions-App:

    mvn clean package
    mvn azure-functions:run
    
  1. Lösen Sie in einem separaten Terminal eine Orchestrierung aus:

    $response = Invoke-RestMethod -Method POST -Uri http://localhost:7071/api/DurableFunctionsOrchestrationCSharp1_HttpStart
    $response
    
  1. Lösen Sie in einem separaten Terminal eine Orchestrierung aus:

    $response = Invoke-RestMethod -Method POST -Uri http://localhost:7071/api/StartChaining
    $response
    
  1. Die Antwort enthält Status-URLs für die Orchestrierungsinstanz. Fragen Sie das Ergebnis über statusQueryGetUri ab, um es zu überprüfen:

    Invoke-RestMethod -Uri $response.statusQueryGetUri
    

    Wenn runtimeStatus der Orchestrierung Completed ist, enthält die Ausgabe Begrüßungsergebnisse. Wenn runtimeStatusRunning oder Pending anzeigt, warten Sie einen Moment und fragen Sie erneut ab.

  2. Weitere Details zur Orchestrierungsinstanz im Durable Task Scheduler-Dashboard unter http://localhost:8082 anzeigen.

Verstehen der Konfiguration des Durable Task Scheduler

Die Schlüsselkonfiguration, mit der diese Beispiele den Durable Task Scheduler verwenden, sind in zwei Dateien enthalten.

host.json

Der Abschnitt "storageProvider" weist Durable Functions an, den Durable Task Scheduler (azureManaged) anstelle des standardmäßigen Azure Storage Back-End zu verwenden:

{
  "extensions": {
    "durableTask": {
      "hubName": "default",
      "storageProvider": {
        "type": "azureManaged",
        "connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING"
      }
    }
  }
}

local.settings.json

Die Verbindungszeichenfolge verweist auf den lokalen Emulator für die Entwicklung:

{
  "Values": {
    "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None"
  }
}

Hinweis

Um eine vorhandene Durable Functions-App zu migrieren, aktualisieren Sie diese beiden Dateien, und fügen Sie das entsprechende Erweiterungspaket für Ihre Sprache hinzu. Installieren Sie für .NET die Microsoft.Azure. Functions.Worker.Extensions.DurableTask.AzureManaged NuGet-Paket. Für andere Sprachen aktualisieren Sie das Erweiterungspaket in host.json auf Version [4.32.0, 5.0.0).

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
    Subscription 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.
    Runtime-Stack 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 Durable Functions 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.
    Dauerhafter Aufgabenplaner Verwenden Sie den angebotenen Zeitplannamen, oder klicken Sie auf "Neu erstellen", um einen benutzerdefinierten Namen zu erstellen.
    Plan 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 für Azure bereitstellen.

Bereitstellen Ihrer Funktions-App in Azure

Von Bedeutung

Die Bereitstellung in einer vorhandenen Funktions-App überschreibt immer den Inhalt dieser App in Azure.

  1. Geben Sie in der Befehlspalette Azure Functions: Deploy to Function App ein und wählen Sie dann.

  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. Wenn die Bereitstellung abgeschlossen ist, wählen Sie View Output aus, um die Erstellungs- und Bereitstellungsergebnisse anzuzeigen, einschließlich der Azure Ressourcen, die Sie erstellt haben. 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 die Ressourcen, die Sie zur Ausführung des Schnellstarts erstellt haben, nicht mehr benötigen, löschen Sie die Ressourcengruppe und alle zugehörigen Ressourcen, um Kosten in Ihrem Azure-Abonnement zu vermeiden.

Nächste Schritte