Freigeben über


Einrichten des Fabric-Überwachungshubs

Der Überwachungshub im Microsoft Fabric Workload Development Kit ist die Überwachungszentrale. Der Überwachungshub wurde für Fabric-Benutzer und -Benutzerinnen entwickelt, die Hintergrundaufträge für Elemente nachverfolgen möchten. Weitere Informationen finden Sie unter Verwenden des Überwachungshubs.

Back-End

In diesem Abschnitt wird beschrieben, wie Sie eine Back-End-Implementierung für den Überwachungshub einrichten.

Definieren der Eigenschaft JobScheduler im Elementmanifest

Um die Auftragsunterstützung zu aktivieren, muss der Artikel die unterstützten Auftragstypen spezifizieren. Fügen Sie die Eigenschaft JobScheduler zur Elementmanifestdatei hinzu. Mit der Eigenschaft JobScheduler werden von der Fabric verwaltete Aufträge für Ihre Elemente aktiviert.

In der folgenden Tabelle finden Sie eine Übersicht über die unterstützten JobScheduler-Definitionseigenschaften:

Eigenschaft Beschreibung Mögliche Werte
OnDemandJobDeduplicateOptions Legt die Option der Deduplizierung für On-Demand-Artikel-Aufträge fest. - None: Den Auftrag nicht duplizieren.
- PerArtifact: Sicherstellen, dass nur ein aktiver Auftrag für denselben Element- und Auftragstyp ausgeführt wird.
- PerUser: Sicherstellen, dass nur ein aktiver Auftrag für denselben Benutzer und dasselbe Element ausgeführt wird.
ScheduledJobDeduplicateOptions Legt die Option der Deduplizierung für On-Demand-Artikel-Aufträge fest. - None: Den Auftrag nicht duplizieren.
- PerArtifact: Sicherstellen, dass nur ein aktiver Auftrag für denselben Element- und Auftragstyp ausgeführt wird.
- PerUser: Sicherstellen, dass nur ein aktiver Auftrag für denselben Benutzer und dasselbe Element ausgeführt wird.
ItemJobTypes Eine Liste der Auftragstypen mit den angegebenen Eigenschaften. - Name: Der Name des Auftragstyps, der vollständig vom unabhängigen Softwareanbieter (ISV) angepasst werden kann.

Implementieren von Auftragsworkload-APIs

Für die Integration in Aufträge muss eine Workload die Auftrags-APIs gemäß der Definition in der Swagger-Spezifikation implementieren.

Drei Fabric-APIs beziehen sich auf Aufträge:


Starten der Auftragsinstanz

Endpunkt: POST /workspaces/{workspaceId}/items/{itemType}/{itemId}/jobTypes/{jobType}/instances/{jobInstanceId}

Diese API wird aufgerufen, um die Ausführung eines Auftrags zu initiieren.

  • Antwort: Die API sollte den Status 202 Accepted zurückgeben, der angibt, dass der Auftrag vom System erfolgreich geplant wurde.

Abrufen des Auftragsinstanzstatus

Endpunkt: GET /workspaces/{workspaceId}/items/{itemType}/{itemId}/jobTypes/{jobType}/instances/{jobInstanceId}

Fabric verwendet einen Abrufmechanismus, um den Status von Auftragsinstanzen nachzuverfolgen. Diese API wird während der Ausführung der Auftragsinstanz jede Minute aufgerufen, um ihren Status zu überprüfen. Der Abruf wird beendet, wenn der Auftrag abgeschlossen ist (erfolgreich oder aufgrund eines Fehlers).

  • Antwort: Die API sollte den Status 200 OK zusammen mit dem aktuellen Status der Auftragsinstanz zurückgeben. Die Antwort sollte den Auftragsstatus, die Start- und Endzeiten sowie Fehlerdetails enthalten, wenn beim Auftrag Fehler aufgetreten sind.

    Unterstützte Auftragsstatuswerte:

    • NotStarted
    • InProgress
    • Completed
    • Failed
    • Cancelled

    Wichtig: Selbst wenn der Auftrag fehlschlägt, sollte diese API den Status 200 OK und den Auftragsstatus Failed zurückgeben.


Abbrechen einer Auftragsinstanz

Endpunkt: POST /workspaces/{workspaceId}/items/{itemType}/{itemId}/jobTypes/{jobType}/instances/{jobInstanceId}/cancel

Rufen Sie diese API auf, um eine laufende Auftragsinstanz abzubrechen.

  • Antwort: Die API sollte den Status 200 OK zusammen mit dem aktuellen Status der Auftragsinstanz zurückgeben. Die Antwort sollte den Auftragsstatus, die Start- und Endzeiten sowie Fehlerdetails enthalten, wenn beim Auftrag Fehler aufgetreten sind.

Weitere Informationen

Anzahl der unzustellbaren Auftragsnachrichten:

Ein Auftrag wird von der Fabric-Plattform als „unzustellbare Nachricht2 markiert, wenn er nicht innerhalb von 2 Stunden gestartet wird.

Beispielimplementierung

Eine Beispielimplementierung dieser APIs finden Sie unter JobsControllerImpl.cs im Beispielrepository.

Front-End

In diesem Abschnitt wird beschrieben, wie Sie eine Front-End-Implementierung für den Überwachungshub einrichten.

Einen Auftrag in der Fabric-Benutzeroberfläche ausführen

Nachdem Sie Aufträge in Ihre Elemente im Back-End integriert haben, können Benutzer und Benutzerinnen mit der Ausführung von Aufträgen beginnen.

Benutzer und Benutzerinnen haben zwei Optionen zum Ausführen von Aufträgen in Fabric:

  • Ein unbeaufsichtigter geplanter Auftrag. Diese Option wird vom Benutzer bzw. der Benutzerin definiert, sodass der Auftrag in regelmäßigen Abständen über eine freigegebene Fabric-Schedulerumgebung ausgeführt wird.
  • Bei Bedarf mithilfe der Workloadbenutzeroberfläche und dem Erweiterungsclient-SDK.

Fabric Planer-Umgebung über die Benutzeroberfläche

  • Einstiegspunktoptionen:

    • Verwenden Sie den Zeitplan im Kontextmenü.

      Der Screenshot zeigt die Option Zeitplan im Fabric-Planer-Menü.

    • Verwenden Sie workloadClient.itemSettings.open, wobei die ausgewählte Einstellungs-ID Schedule lautet.

  • Layout

    Der Screenshot zeigt die Fabric-Zeitplan-Einstellungen.

    1. Der Zeitpunkt der letzten erfolgreichen Aktualisierung und der nächste Aktualisierungszeitpunkt.
    2. Die Schaltfläche Aktualisieren
    3. Die Einstellungen für den Elementzeitplan.

Onboarding

Schritt 1: Hinzufügen eines Kontextmenüelements für den Zeitplan

Damit die Schaltfläche Zeitplan im Kontextmenü des Elements angezeigt wird, fügen Sie einen neuen Eintrag zur Eigenschaft contextMenuItems im Front-End-Manifest des Elements hinzu:

{
    "name": "schedule"
}

Schritt 2: Hinzufügen von Einstellungen für Elementzeitplan

Fügen Sie im Front-End-Manifest einen neuen schedule-Eintrag der Eigenschaft mit Elementeinstellungen hinzu:

"schedule": {
    "itemJobType": "ScheduledJob",
    "refreshType": "Refresh"
}
  • itemJobType: Der Elementauftragstyp, der in der XML-Datei der Elementauftragsdefinition definiert ist.
  • refreshType: Legt die Anzeige der Schaltfläche Aktualisieren an. Wählen Sie eine von drei Optionen aus: Verwenden Sie Refresh und Run, um die Schaltfläche „Aktualisieren“ und den Anzeigenamen u aktivieren, oder legen Sie None fest, um die Schaltfläche Aktualisieren zu deaktivieren.

Aufträge Javascript-APIs

Neben unbeaufsichtigten geplanten Aufträgen kann eine Workload einen Auftrag bei Bedarf ausführen oder sogar einen geplanten Auftrag bei Anforderung starten. Wir stellen eine Reihe von APIs als Teil unseres Erweiterungs-Clients bereit:

  • APIs für geplante Aufträge:

    • getItemScheduledJobs(objectId: string): Promise<ItemSchedule>
    • createItemScheduledJobs(createItemScheduledJobs: CreateItemScheduleParams): Promise<ItemSchedule>
    • updateItemScheduledJobs(updateItemScheduleParams: UpdateItemScheduleParams): Promise<ItemSchedule>
  • Bestimmte Auftragsinstanz-APIs:

    • runItemJob(jobParams: RunItemJobParams): Promise<ItemJobInstance>
    • cancelItemJob(jobParams: CancelItemJobParams): Promise<CancelItemJobResult>
    • getItemJobHistory(getHistoryParams: GetItemJobHistoryParams): Promise<ItemJobHistory>

Hinweis

getItemJobHistory gibt den Auftrag mit dem Status zurück, der derzeit in Fabric gespeichert ist. Weil sich Fabric derzeit nur auf das Abrufen stützt, müssen Sie sich darüber im Klaren sein, dass der Status möglicherweise nicht ganz aktuell ist. Wenn Ihre Benutzeroberfläche möglichst schnell den genauesten Status widerspiegeln soll, empfehlen wir Ihnen, den Status direkt vom Back-End abzurufen.

Integration in den Überwachungshub

Sobald die Daten bereit sind, werden die Elementaufträge automatisch im Überwachungshub angezeigt. Der nächste Schritt besteht darin, den Elementtyp zum Filterbereich hinzuzufügen und verfügbare Aktionen zu konfigurieren und zu implementieren, die Benutzer*innen für die Aufträge nutzen können.

Aktivieren des Elements im Filterbereich des Monitoring-Hubs

Wenn Sie das Element zum Filterbereich hinzufügen möchten, definieren Sie eine neue Eigenschaft im Front-End-Manifest des Elements, und legen Sie supportedInMonitoringHub auf true fest.

Integration mit schnellen Aktionen für den Auftrag

Der Screenshot zeigt die Schaltflächen für Schnelle Aktionen für Aufträge im Monitoring-Hub.

Benutzer und Benutzerinnen können eine Reihe von Vorgängen für einen Auftrag ausführen, einschließlich Abbrechen, Wiederholen und Abrufen von Details.

Das Workloadteam entscheidet, welchen Vorgang es ermöglichen möchte, indem es die Eigenschaft itemJobConfig im Front-End-Manifest des Elements festlegt. Wenn sie nicht festgelegt ist, ist das Symbol nicht sichtbar.

Beispielsweise wird die Konfiguration, die wir unserem Beispielelement hinzugefügt haben und die alle Auftragsaktionen unterstützt, weiter unten in diesem Abschnitt beschrieben.

Wenn ein Benutzer oder eine Benutzerin das Symbol Abbrechen des Beispielelementauftrags auswählt, wird die bereitgestellte Aktion item.job.cancel aufgerufen. Der auftragsbezogene Kontext zur Erweiterung Fabric.WorkloadSample wird von der Workload implementiert, um den Auftrag tatsächlich abzubrechen.

Die Fabric-Plattform erwartet auch eine Antwort von dieser Aktion, um den Benutzer mit den Ergebnissen zu benachrichtigen.

"itemJobActionConfig": {
    "registeredActions": {
        "detail": {
            "extensionName": "Fabric.WorkloadSample",
                "action": "item.job.detail"
        },
        "cancel": {
            "extensionName": "Fabric.WorkloadSample",
                "action": "item.job.cancel"
        },
        "retry": {
            "extensionName": "Fabric.WorkloadSample",
                "action": "item.job.retry"
        }
    }
}

Auftrags-Detailbereich

Der Screenshot zeigt den Auftrags-Detailbereich im Monitoring-Hub.

Wenn das Workloadteam die Aktion für das Abrufen detaillierte Informationen registriert, erwartet Fabric, dass die Workloadaktion die Daten in einem bestimmten Format zurückgibt, damit Fabric diese Informationen im Seitenbereich anzeigen kann.

Derzeit werden Schlüssel-Wert-Paare in Nur-Text-Ausgaben oder Hyperlinks unterstützt.

  • Ein Beispiel für die Behandlung der Auftragsaktionen finden Sie unter index.worker.ts im Repository mit Beispielen. Suchen Sie in der Datei nach Aktionen, die mit item.job beginnen.

Letzte Ausführungen

Fabric kann nicht nur den Auftragsstatus im Überwachungshub anzeigen, sondern bietet auch eine gemeinsame Benutzeroberfläche zum Anzeigen der letzten Ausführungen eines bestimmten Elements.

Einstiegspunkte:

  • Kontextmenü>Zuletzt ausgeführt

    Screenshot: Die Option „Zuletzt ausgeführt“ im Menü „Optionen“

  • Verwenden Sie workloadClient.itemRecentRuns.open.

Onboarding

Schritt 1: Hinzufügen des recentRuns-Kontextmenüelements

Um die Schaltfläche Zuletzt ausgeführt im Elementmenü anzuzeigen, fügen Sie der contextMenuItems-Eigenschaft im Front-End-Manifest des Element einen neuen Eintrag hinzu.

Beispiel:

{
    "name": "recentruns"
}

Schritt 2: Hinzufügen von Einstellungen für das Element recentRun

Fügen Sie der Eigenschaft der Elementeinstellungen im Front-End-Manifest einen neuen recentRun-Eintrag hinzu.

Beispiel:

"recentRun": {
     "useRecentRunsComponent": true,
}

Integration von Aufträgen im Menüband des Beispielelements

Im Rahmen unseres Beispiels der Benutzeroberflächenworkload haben wir dem Menüband des Elements einen dedizierten Abschnitt für Aufträge hinzugefügt.

Screenshot: Die Registerkarte „Element“ in der Fabric-Benutzeroberfläche

Eine Beispielimplementierung dieses Menübands finden Sie unter ItemTabToolbar.tsx im Repository mit Beispielen.