Debuggen und Verwalten von Orchestrierungen mithilfe des Dashboards "Durable Task Scheduler"

Das Dashboard "Durable Task Scheduler" ermöglicht es Ihnen, laufende Orchestrierungen zu beobachten, den Ausführungsverlauf sowie die Eingaben/Ausgaben von Aktivitäten zu überprüfen und den Lebenszyklus der Orchestrierung (anhalten, fortsetzen, beenden) zu verwalten – und das alles über einen Browser.

Das Dashboard ist in zwei Umgebungen verfügbar:

Umwelt URL Authentication
Lokaler Emulator http://localhost:8082 Keine erforderlich
Azure https://dashboard.durabletask.io/?endpoint=<SCHEDULER_ENDPOINT>&taskhub=<TASK_HUB_NAME> Erfordert die Rolle "Datenmitarbeiter für dauerhafte Aufgaben"

Weitere Informationen zum Emulator finden Sie im Emulator für die lokale Entwicklung.

In diesem Artikel erfahren Sie, wie Sie:

  • Greifen Sie lokal oder auf Azure auf das Dashboard zu.
  • Weisen Sie Ihrer Entwickleridentität die Rolle "Datenmitwirkender für dauerhafte Aufgaben" zu.
  • Den Orchestrierungsstatus überwachen, Instanzen filtern und den Ausführungsverlauf überprüfen.
  • Orchestrierungen verwalten (pausieren, fortsetzen, beenden, Ereignisse auslösen).

Voraussetzungen

Bevor Sie beginnen:

Lokal auf das Dashboard zugreifen

Wenn Sie den Emulator "Durable Task Scheduler" verwenden, ist das Dashboard unter:

http://localhost:8082

Für die lokale Entwicklung ist keine Authentifizierung oder Rollenzuweisung erforderlich.

Zuweisen von Dashboardzugriffsrollen (Azure)

Um auf das Dashboard für einen Azure gehosteten Scheduler zuzugreifen, weisen Sie die Rolle Durable Task Data Contributor Ihrer Entwickleridentität (E-Mail) zu.

  1. Legen Sie als zugewiesene Person Ihre Entwickleridentität fest.

    assignee=$(az ad user show --id "someone@microsoft.com" --query "id" --output tsv)
    
  2. Legen Sie den Bereich fest. Das Gewähren des Zugriffs auf den Planerbereich ermöglicht den Zugriff auf alle Aufgabenhubs in diesem Planer.

    Aufgabenhub

    scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASK_HUB_NAME"
    

    Scheduler

    scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"
    
  3. Gewähren des Zugriffs. Führen Sie den folgenden Befehl aus, um die Rollenzuweisung zu erstellen und Zugriff zu gewähren.

    az role assignment create \
      --assignee "$assignee" \
      --role "Durable Task Data Contributor" \
      --scope "$scope"
    

    Erwartete Ausgabe

    Das folgende Ausgabebeispiel zeigt eine Entwickleridentität, der die Rolle „Mitwirkender an langlebigen Aufgabendaten“ auf Planerebene zugewiesen ist:

    {
      "condition": null,
      "conditionVersion": null,
      "createdBy": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "createdOn": "2024-12-20T01:36:45.022356+00:00",
      "delegatedManagedIdentityResourceId": null,
      "description": null,
      "id": "/subscriptions/YOUR_SUBSCRIPTION_ID/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME/providers/Microsoft.Authorization/roleAssignments/ROLE_ASSIGNMENT_ID",
      "name": "ROLE_ASSIGNMENT_ID",
      "principalId": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "principalName": "YOUR_EMAIL",
      "principalType": "User",
      "resourceGroup": "YOUR_RESOURCE_GROUP",
      "roleDefinitionId": "/subscriptions/YOUR_SUBSCRIPTION/providers/Microsoft.Authorization/roleDefinitions/ROLE_DEFINITION_ID",
      "roleDefinitionName": "Durable Task Data Contributor",
      "scope": "/subscriptions/YOUR_SUBSCRIPTION/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME",
      "type": "Microsoft.Authorization/roleAssignments",
      "updatedBy": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "updatedOn": "2024-12-20T01:36:45.022356+00:00"
    }
    
  4. Öffnen Sie nach dem Gewähren des Zugriffs das Dashboard unter:

    https://dashboard.durabletask.io/?endpoint=<SCHEDULER_ENDPOINT>&taskhub=<TASK_HUB_NAME>
    

    Ersetzen Sie <SCHEDULER_ENDPOINT> durch den Endpunkt Ihres Zeitplans (z. B. https://myscheduler.westus2.durabletask.io) und <TASK_HUB_NAME> durch den Namen Ihres Aufgabenhubs.

    Alternativ können Sie zu https://dashboard.durabletask.io/ navigieren und die Endpunkt- und Aufgabenhubnamen Ihres Zeitplans im Verbindungsformular eingeben.

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 .

Überwachen des Fortschritts der Orchestrierung und des Ausführungsverlaufs

Mit dem Dashboard können Sie den Orchestrierungsstatus überwachen und den Ausführungsverlauf überprüfen. Sie können die Orchestrierungsliste mithilfe der folgenden Kriterien filtern:

  • Instanz-ID – Suchen Sie mittels ihrer eindeutigen ID nach einer bestimmten Orchestrierung.
  • Orchestrierungsname – Filtern nach dem Namen des Orchestrierungstyps.
  • Status – Filtern nach Laufzeitstatus (Läuft, Abgeschlossen, Fehlgeschlagen, Beendet, Ausstehend, Angehalten).
  • Erstellter Zeitbereich – Begrenze die Ergebnisse auf ein Zeitfenster.

Screenshot des Dashboards mit einer Liste des Orchestrierungsverlaufs und -status sowie Filteroptionen.

Anzeigen von Orchestrierungseingaben und -ausgaben:

Screenshot des Dashboards, in dem der Orchestrierungsverlauf und Statuseingaben und -ausgaben aufgeführt sind.

Detaillierte Ansicht der Orchestrierungsausführung

Sie können einen Drilldown für Orchestrierungsinstanzen ausführen, um Ausführungsdetails und Aktivitätsstatus anzuzeigen. Diese Ansicht hilft Ihnen, Probleme zu diagnostizieren oder Einblicke in den Status einer Orchestrierung zu erhalten.

In der folgenden Abbildung wird die Zeitachsenansicht einer Orchestrierungsausführung angezeigt. In dieser "ProcessDocument"-Orchestrierung wurde die "WriteDoc"-Aktivität dreimal (erfolglos) mit jeweils fünf Sekunden zwischen den Wiederholungen neu versucht.

Screenshot des Dashboards mit dem Ausführungszeitplan der Orchestrierung.

Sie können auch Eingaben und Ausgaben von Aktivitäten in einer Orchestrierung anzeigen:

Screenshot des Dashboards mit Aktivitätseingaben und Ausgaben.

Andere Ansichten der Orchestrierungsausführungssequenz

In der Verlaufsansicht werden detaillierte Ereignissequenzen, Zeitstempel und Nutzlast angezeigt:

Screenshot des Dashboards mit Details zur Orchestrierungsinstanz.

Die Sequenzansicht bietet eine weitere Möglichkeit zum Visualisieren der Ereignissequenz:

Screenshot des Dashboards mit der Orchestrierungssequenz-Ansicht.

Orchestrierungsmanagement

Das Dashboard enthält Features zum Verwalten des Orchestrierungslebenszyklus bei Bedarf. Zu den verfügbaren Aktionen gehören:

  • Pausieren – Unterbrechen einer laufenden Orchestrierung. Er verbleibt im Arbeitsspeicher, beendet jedoch die Verarbeitung von Ereignissen, bis er fortgesetzt wird.
  • Wiederaufnahme – Wiederaufnahme einer zuvor unterbrochenen Orchestrierung.
  • Terminieren – Beenden Sie sofort eine Orchestrierung mit einem optionalen Grund.
  • Raise-Ereignis – Senden Sie ein benanntes externes Ereignis (mit optionaler JSON-Nutzlast) an eine laufende oder pausierte Orchestrierung.

Screenshot des Dashboards mit den Schaltflächen

Nächste Schritte

Für den langlebigen Aufgabenplaner für Durable Functions:

Für den langlebigen Aufgabenplaner für die Durable Task SDKs: