Dela via


Automatisera distributionspipelinen för Power BI-objekt med hjälp av API:er

Med verktyget Microsoft Power BI-distributionspipelines kan business intelligence-team skapa en effektiv och återanvändbar lanseringsprocess för sitt Power BI-innehåll.

Kommentar

API:erna för distributionspipelines som anges här gäller endast för Power BI-objekt. Information om INFRASTRUKTUR-API:er finns i dokumentationen för Fabric API.

För att uppnå kontinuerlig integrering och kontinuerlig leverans (CI/CD) av innehåll använder många organisationer automatiseringsverktyg, inklusive Azure DevOps. Organisationer som använder Azure DevOps kan använda tillägget För Power BI-automatiseringsverktyg , som stöder många av api-åtgärderna för distributionspipelines.

Du kan använda Power BI REST API:er för distributionspipelines för att integrera Fabric i organisationens automatiseringsprocess. Här följer några exempel på vad som kan göras med hjälp av API:erna:

  • Hantera pipelines från början till slut, inklusive att skapa en pipeline, tilldela en arbetsyta till valfri fas och distribuera och ta bort pipelinen.

  • Tilldela och ta bort användare till och från en pipeline.

  • Integrera Fabric i välbekanta DevOps-verktyg som Azure DevOps eller GitHub Actions.

  • Schemalägg pipelinedistributioner så att de sker automatiskt vid en viss tidpunkt.

  • Distribuera flera pipelines samtidigt.

  • Kaskad beroende på pipelinedistributioner. Om du har innehåll som är anslutet mellan pipelines kan du se till att vissa pipelines distribueras före andra.

Förutsättningar

Kontrollera att du har följande innan du använder API:erna för distributionspipelines:

API-funktioner för distributionspipelines

Med Power BI REST API:er för distributionspipelines kan du utföra följande funktioner:

  • Hämta pipelineinformation – Hämta information om dina pipelines och deras innehåll. När du hämtar pipelineinformationen kan du skapa API-anropen för distribution dynamiskt. Du kan också kontrollera statusen för en distribution eller distributionshistoriken.

  • Distribuera – REST-anropen gör det möjligt för utvecklare att använda alla typer av distributioner som är tillgängliga i Fabric-tjänsten.

  • Skapa och ta bort pipelines – Använd Skapa pipeline och Ta bort pipeline för att utföra dessa åtgärder.

  • Hantera arbetsytor – Med Tilldela arbetsyta och Ta bort tilldelning av arbetsyta kan du tilldela och avtilldela arbetsytor till specifika pipelinesteg.

  • Hantera pipelineanvändare - Ta bort pipelineanvändare gör att du kan ta bort en användare från en pipeline. Med uppdatera pipelineanvändare kan du lägga till en användare i pipelinen.

Vilka distributionstyper stöder API:erna?

API:erna stöder följande distributionstyper:

  • Distribuera alla – ett enda API-anrop som distribuerar allt innehåll på arbetsytan till nästa steg i pipelinen. Använd distribuera alla API:er för den här åtgärden.

  • Selektiv distribution – Distribuerar endast specifika objekt, till exempel rapporter eller instrumentpaneler, i pipelinen. För den här åtgärden använder du API:et selektiv distribution .

  • Bakåtdistribuering – Distribuerar nya objekt till föregående steg. Bakåtdistribution fungerar bara om de objekt som distribueras inte redan finns i målfasen. För den här åtgärden använder du antingen API:erna Distribuera alla eller Selektiv distribution , med isBackwardDeployment inställt på True.

  • Uppdatera app – Som en del av distributions-API-anropet kan du uppdatera innehållet i appen som är relaterat till den fasen. Uppdaterade objekt är automatiskt tillgängliga för slutanvändarna när distributionen är klar. För den här åtgärden använder du antingen API:erna Distribuera alla eller Selektiv distribution med PipelineUpdateAppSettings.

Integrera din pipeline med Azure DevOps

Om du vill automatisera distributionsprocesserna inifrån versionspipelinen i Azure DevOps använder du någon av följande metoder:

  • PowerShell – Skriptet loggar in på Fabric med hjälp av tjänstens huvudnamn eller en användare.

  • Power BI-automatiseringsverktyg – Det här tillägget fungerar med tjänstens huvudnamn eller en användare.

Du kan också använda andra Power BI REST API-anrop för att slutföra relaterade åtgärder som att importera en .pbix till pipelinen, uppdatera datakällor och parametrar.

Använda tillägget För Power BI-automatiseringsverktyg

Tillägget för Power BI-automatiseringsverktyg är ett öppen källkod Azure DevOps-tillägg som tillhandahåller en rad olika åtgärder för distributionspipelines som kan utföras i Azure DevOps. Tillägget eliminerar behovet av API:er eller skript för att hantera pipelines. Varje åtgärd kan användas individuellt för att utföra en uppgift, till exempel att skapa en pipeline. Åtgärder kan användas tillsammans i en Azure DevOps-pipeline för att skapa ett mer komplext scenario, till exempel att skapa en pipeline, tilldela en arbetsyta till pipelinen, lägga till användare och distribuera.

När du har lagt till tillägget för Power BI-automatiseringsverktyg i DevOps måste du skapa en tjänstanslutning. Följande anslutningar är tillgängliga:

  • Tjänstens huvudnamn (rekommenderas) – Den här anslutningen autentiserar med hjälp av tjänstens huvudnamn och kräver Microsoft Entra-appens hemlighet och program-ID. När du använder det här alternativet kontrollerar du att tjänstadministratörsinställningarna för tjänstens huvudnamn är aktiverade.

  • Användarnamn och lösenord – Konfigurerad som en allmän tjänstanslutning med ett användarnamn och ett lösenord. Den här anslutningsmetoden stöder inte multifaktorautentisering. Vi rekommenderar att du använder anslutningsmetoden för tjänstens huvudnamn eftersom den inte kräver lagring av användarautentiseringsuppgifter i Azure DevOps.

Kommentar

Power BI Automation Tools-tillägget använder en Azure DevOps-tjänstanslutning för att lagra autentiseringsuppgifter. Mer information finns i Så här lagrar vi dina autentiseringsuppgifter för Azure DevOps Services.

När du har aktiverat en tjänstanslutning för dina Azure DevOps Power BI-automatiseringsverktyg kan du skapa pipelineuppgifter. Tillägget innehåller följande uppgifter för distributionspipelines:

  • Skapa en ny pipeline

  • Tilldela en arbetsyta till en pipelinefas

  • Lägga till en användare i en distributionspipeline

  • Lägga till en användare i en arbetsyta

  • Distribuera innehåll till en distributionspipeline

  • Ta bort en arbetsyta från en distributionspipeline

  • Ta bort en pipeline

Få åtkomst till PowerShell-exemplen

Du kan använda följande PowerShell-skript för att förstå hur du utför flera automatiseringsprocesser. Om du vill visa eller kopiera texten i ett PowerShell-exempel använder du länkarna i det här avsnittet.

Du kan också ladda ned hela PowerBI-Developer-Samples GitHub-mappen.

PowerShell-exempel

Det här avsnittet beskriver ett exempel på ett PowerShell-skript som distribuerar en semantisk modell, rapport och instrumentpanel, från utvecklingsfasen till testfasen. Skriptet kontrollerar sedan om distributionen lyckades.

Om du vill köra ett PowerShell-skript som utför en distribution behöver du följande komponenter. Du kan lägga till någon av dessa delar i aktiviteter i azure-pipelinestegen.

  1. Logga in – Innan du kan distribuera ditt innehåll måste du logga in på Fabric med hjälp av tjänstens huvudnamn eller en användare. Använd kommandot Connect-PowerBIServiceAccount för att logga in.

  2. Skapa din begärandetext – I den här delen av skriptet anger du vilka objekt (till exempel rapporter och instrumentpaneler) som du distribuerar.

    $body = @{ 
        sourceStageOrder = 0 # The order of the source stage. Development (0), Test (1).   
        datasets = @(
            @{sourceId = "Insert your dataset ID here" }
        )      
        reports = @(
            @{sourceId = "Insert your report ID here" }
        )            
        dashboards = @(
            @{sourceId = "Insert your dashboard ID here" }
        )
    
        options = @{
            # Allows creating new item if needed on the Test stage workspace
            allowCreateArtifact = $TRUE
    
            # Allows overwriting existing item if needed on the Test stage workspace
            allowOverwriteArtifact = $TRUE
        }
    } | ConvertTo-Json
    
  3. Distribuera – Här utför du distributionen.

    $url = "pipelines/{0}/Deploy" -f "Insert you pipeline ID here"
    $deployResult = Invoke-PowerBIRestMethod -Url $url  -Method Post -Body $body | ConvertFrom-Json
    
  4. (Valfritt) Meddelande om distributionsavslut – Eftersom distributions-API:et är asynkront kan du programmera skriptet för att meddela dig när distributionen är klar.

    $url =  "pipelines/{0}/Operations/{1}" -f "Insert you pipeline ID here",$deployResult.id
    $operation = Invoke-PowerBIRestMethod -Url $url -Method Get | ConvertFrom-Json    
    while($operation.Status -eq "NotStarted" -or $operation.Status -eq "Executing")
    {
        # Sleep for 5 seconds
        Start-Sleep -s 5
        $operation = Invoke-PowerBIRestMethod -Url $url -Method Get | ConvertFrom-Json
    }
    

Beaktanden och begränsningar

  • Distribution med hjälp av API:er omfattas av samma begränsningar som användargränssnittet för distributionspipelines.

  • Tjänstens huvudnamn kan inte konfigurera OAuth-autentiseringsuppgifter . När du har distribuerat nya objekt blir det inloggade tjänstens huvudnamn ägare till alla distribuerade sidnumrerade rapporter och semantiska modeller. I sådana fall kan en uppdatering inte slutföras.

  • Det går inte att distribuera dataflöden med hjälp av tjänstens huvudnamn .

  • Det maximala antalet objekt som kan distribueras i en enskild distribution är 300.

  • API:erna för distributionspipelines stöder för närvarande endast Power BI-objekt.

  • Att skapa en anpassad pipeline med 2–10 faser stöds för närvarande endast via användargränssnittet.