Delen via


De Fabric-bewakingshub instellen

De bewakingshub in de Microsoft Fabric Workload Development Kit is het gecentraliseerde bewakingscentrum. De bewakingshub is ontworpen voor Fabric-gebruikers om achtergrondtaken voor items bij te houden. Zie De bewakingshub gebruiken voor meer informatie.

Back-end

In deze sectie wordt beschreven hoe u een back-end-implementatie instelt voor de bewakingshub.

JobScheduler De eigenschap definiëren in het itemmanifest

Als u taakondersteuning wilt inschakelen, moet het item de typen taken opgeven die door het item worden ondersteund. Voeg de JobScheduler eigenschap toe aan het manifestbestand van het item. Met de JobScheduler eigenschap kunt u door Fabric beheerde taken voor uw items inschakelen.

De volgende tabel bevat een overzicht van de ondersteunde JobScheduler definitie-eigenschappen:

Eigenschappen Beschrijving Mogelijke waarden
OnDemandJobDeduplicateOptions Hiermee stelt u de optie voor ontdubbeling in voor itemtaken op aanvraag. - None: Ontdubbel de taak niet.
- PerArtifact: Zorg ervoor dat er slechts één actieve taak wordt uitgevoerd voor hetzelfde item en hetzelfde taaktype.
- PerUser: Zorg ervoor dat er slechts één actieve taak wordt uitgevoerd voor dezelfde gebruiker en hetzelfde item.
ScheduledJobDeduplicateOptions Hiermee stelt u de optie voor ontdubbeling in voor itemtaken op aanvraag. - None: Ontdubbel de taak niet.
- PerArtifact: Zorg ervoor dat er slechts één actieve taak wordt uitgevoerd voor hetzelfde item en hetzelfde taaktype.
- PerUser: Zorg ervoor dat er slechts één actieve taak wordt uitgevoerd voor dezelfde gebruiker en hetzelfde item.
ItemJobTypes Een lijst met taaktypen met de opgegeven eigenschappen. - Name: De naam van het taaktype, dat volledig kan worden aangepast door de onafhankelijke softwareleverancier (ISV).

Taakworkload-API's implementeren

Voor integratie met taken moet een workload de Taken-API's implementeren zoals gedefinieerd in de Swagger-specificatie.

Drie Fabric-API's zijn gerelateerd aan taken:


Het taakexemplaren starten

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

Deze API wordt aangeroepen om de uitvoering van een taak te initiëren.

  • Antwoord: De API moet een 202 Accepted status retourneren, waarmee wordt aangegeven dat de taak is gepland door het systeem.

De status van het taakexemplaren ophalen

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

Fabric maakt gebruik van een pollingmechanisme om de status van het taakexemplaren bij te houden. Deze API wordt elke minuut aangeroepen terwijl het taakexemplaren worden uitgevoerd om de status ervan te controleren. Polling stopt wanneer de taak is voltooid, ongeacht of de taak is voltooid of als gevolg van een storing.

  • Antwoord: De API moet een 200 OK status retourneren, samen met de status van het huidige taakexemplaren. Het antwoord moet de taakstatus, begintijden en eindtijden en foutdetails bevatten als de taak is mislukt.

    Ondersteunde taakstatussen:

    • NotStarted
    • InProgress
    • Completed
    • Failed
    • Cancelled

    Belangrijk: Zelfs als de taak mislukt, moet deze API een 200 OK status en een Failed taakstatus retourneren.


Een taakexemplaren annuleren

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

Roep deze API aan om een doorlopend taakexemplaren te annuleren.

  • Antwoord: De API moet een 200 OK status retourneren, samen met de huidige status van het taakexemplaren. Het antwoord moet de taakstatus, begin- en eindtijden en foutdetails bevatten als de taak is mislukt.

Meer informatie

Aantal deadletters voor taken:

Een taak wordt gemarkeerd als een 'dode letter' door het Fabric-platform als deze niet binnen 2 uur begint.

Voorbeeld van implementatie

Zie JobsControllerImpl.cs in de opslagplaats met voorbeelden voor een voorbeeldimplementatie van deze API's.

Front-end

In deze sectie wordt beschreven hoe u een front-end-implementatie instelt voor de bewakingshub.

Een taak uitvoeren in de gebruikersinterface van Fabric

Nadat u taken in uw items in de back-end hebt geïntegreerd, kunnen gebruikers taken gaan uitvoeren.

Gebruikers hebben twee opties om taken uit te voeren in Fabric:

  • Een geplande taak zonder toezicht. Deze optie wordt gedefinieerd door de gebruiker om regelmatig uit te voeren via een gedeelde Fabric-scheduler-ervaring.
  • On-demand met behulp van de gebruikersinterface van de workload met en de SDK voor de extensieclient.

Fabric Scheduler-ervaring vanuit de gebruikersinterface

  • Opties voor toegangspunten:

    • Gebruik de planning van het contextmenu.

      Schermopname van de optie Planning in het menu Fabric Scheduler.

    • Gebruik workloadClient.itemSettings.open, waarbij de geselecteerde instellingen-id is Schedule.

  • Indeling

    Schermopname van fabric scheduler-instellingen.

    1. De laatste geslaagde vernieuwingstijd en de volgende vernieuwingstijd.
    2. De knop Vernieuwen .
    3. De instellingen van het itemschema.

Onboarding

Stap 1: Een contextmenu-item voor een planning toevoegen

Als u de knop Planning wilt weergeven in het contextmenu van het item, voegt u een nieuwe vermelding toe aan de contextMenuItems eigenschap in het front-endmanifest van het item:

{
    "name": "schedule"
}

Stap 2: Instellingen voor itemplanning toevoegen

Voeg een nieuwe schedule vermelding toe aan de eigenschap Iteminstellingen in het front-endmanifest:

"schedule": {
    "itemJobType": "ScheduledJob",
    "refreshType": "Refresh"
}
  • itemJobType: het itemtaaktype dat is gedefinieerd in het XML-bestand met de taakdefinitie van het item.
  • refreshType: Hiermee geeft u de weergave van de knop Vernieuwen . Kies uit drie opties: Gebruik Refresh en Run schakel de knop Vernieuwen en de weergavenaam in of schakel None deze optie in om de knop Vernieuwen uit te schakelen.

JavaScript-API's voor taken

Naast geplande taken zonder toezicht kan een workload een taak op aanvraag uitvoeren of zelfs een geplande taak op aanvraag starten. We bieden een set API's als onderdeel van onze extensieclient:

  • Api's voor geplande taken:

    • getItemScheduledJobs(objectId: string): Promise<ItemSchedule>
    • createItemScheduledJobs(createItemScheduledJobs: CreateItemScheduleParams): Promise<ItemSchedule>
    • updateItemScheduledJobs(updateItemScheduleParams: UpdateItemScheduleParams): Promise<ItemSchedule>
  • Specifieke API's voor het taakexemplaren:

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

Notitie

getItemJobHistory retourneert de taak met de status die momenteel is opgeslagen in Fabric. Omdat Fabric momenteel alleen afhankelijk is van polling, moet u er rekening mee houden dat de status mogelijk niet het meest up-to-date is. Als u wilt dat uw gebruikersinterface de meest nauwkeurige status zo snel mogelijk weergeeft, raden we u aan om de status rechtstreeks vanuit de back-end op te halen.

Integreren met de bewakingshub

Wanneer de gegevens gereed zijn, worden de itemtaken automatisch weergegeven in de bewakingshub. De volgende stap is het toevoegen van het itemtype aan het filtervenster en het configureren en implementeren van beschikbare acties die een gebruiker kan uitvoeren voor de taken.

Het item inschakelen in het filtervenster van de bewakingshub

Als u uw item wilt toevoegen aan het filterdeelvenster, definieert u een nieuwe eigenschap in het front-endmanifest van het item en stelt u deze in supportedInMonitoringHub trueop .

Integreren met snelle acties voor taken

Schermopname van knoppen voor snelle acties voor taken in de bewakingshub.

Een gebruiker kan een set bewerkingen uitvoeren op basis van een taak, waaronder annuleren, opnieuw proberen en details ophalen.

Het workloadteam bepaalt welke eigenschap ze willen inschakelen door de itemJobConfig eigenschap in te stellen in het front-endmanifest van het item. Als deze niet is ingesteld, is het pictogram niet zichtbaar.

De configuratie die we hebben toegevoegd aan ons voorbeelditem dat alle taakacties ondersteunt, wordt bijvoorbeeld verderop in deze sectie weergegeven.

Wanneer een gebruiker het pictogram Annuleren van de voorbeelditemtaak selecteert, roepen we de opgegeven actie item.job.cancelaan. De taakgerelateerde context voor de extensie Fabric.WorkloadSample wordt geïmplementeerd door de workload om de taak daadwerkelijk te annuleren.

Het Fabric-platform verwacht ook een reactie van deze actie om de gebruiker op de hoogte te stellen met de resultaten.

"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"
        }
    }
}

Deelvenster Taakdetails

Schermopname van het taakdetailsvenster in de bewakingshub.

Wanneer het workloadteam de actie registreert voor gedetailleerde informatie, verwacht Fabric dat de workloadactie de gegevens in een specifieke indeling retourneert, zodat Fabric die informatie in het zijpaneel kan weergeven.

Op dit moment worden sleutel-/waardeparen in tekst zonder opmaak of hyperlink ondersteund.

  • Zie index.worker.ts in de voorbeeldopslagplaats voor een voorbeeld van het verwerken van de taakacties. Zoek in het bestand naar acties die beginnen met item.job.

Recente uitvoeringen

Naast het weergeven van de taakstatus in de bewakingshub biedt Fabric een gedeelde gebruikerservaring om de recente uitvoeringen van een specifiek item weer te geven.

Toegangspunten:

  • Contextmenu>Recente uitvoeringen

    Schermopname van de optie recente uitvoeringen in het menu Opties.

  • Gebruik daarvoor workloadClient.itemRecentRuns.open.

Onboarding

Stap 1: Contextmenu-item toevoegen recentRuns

Als u de knop Recente uitvoeringen in het itemmenu wilt weergeven, voegt u een nieuwe vermelding toe aan de contextMenuItems eigenschap in het front-endmanifest van het item.

Voorbeeld:

{
    "name": "recentruns"
}

Stap 2: Iteminstellingen recentRun toevoegen

Voeg een nieuwe recentRun vermelding toe aan de eigenschap Iteminstellingen in het front-endmanifest.

Voorbeeld:

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

Takenintegratie in het lint met voorbeelditems

Als onderdeel van het voorbeeld van de ui-workload hebben we een sectie toegevoegd die is toegewezen aan taken op het itemlint.

Schermopname van het tabblad Item in de gebruikersinterface van Fabric.

Zie ItemTabToolbar.tsx in de voorbeeldopslagplaats voor een voorbeeld van hoe dit lint is geïmplementeerd.