Automatizace kanálu nasazení pomocí rozhraní API a Azure DevOps

Nástroj kanálů nasazení Microsoft Fabric umožňuje týmům business intelligence vytvářet efektivní a opakovaně použitelný proces vydávání obsahu prostředků infrastruktury.

K zajištění kontinuální integrace a průběžného doručování obsahu (CI/CD) používá mnoho organizací automatizační nástroje, včetně Azure DevOps. Organizace, které používají Azure DevOps, můžou použít rozšíření nástrojů pro automatizaci Power BI, které podporuje řadu operací rozhraní API kanálů nasazení.

Pomocí kanálů nasazení můžete rozhraní REST API Power BI integrovat prostředky infrastruktury do procesu automatizace vaší organizace. Tady je několik příkladů toho, co je možné provést pomocí rozhraní API:

  • Spravujte kanály od začátku do konce, včetně vytvoření kanálu, přiřazení pracovního prostoru k jakékoli fázi a nasazení a odstranění kanálu.

  • Přiřaďte a zrušte přiřazení uživatelů ke kanálu a z kanálu.

  • Integrujte prostředky infrastruktury do známých nástrojů DevOps, jako jsou Azure DevOps nebo GitHub Actions.

  • Naplánujte automatické nasazení kanálů v určitém čase.

  • Současně nasaďte několik kanálů.

  • Kaskádová v závislosti na nasazení kanálu. Pokud máte obsah, který je propojený mezi kanály, můžete se ujistit, že jsou některé kanály nasazené před ostatními.

Funkce rozhraní API kanálů nasazení

Poznámka:

Rozhraní API kanálů nasazení v současné době fungují jenom pro položky Power BI.

Kanály nasazení rozhraní REST API Power BI umožňují provádět následující funkce:

  • Získejte informace o kanálu – Načtěte informace o kanálech a jejich obsahu. Získání informací o kanálu umožňuje dynamicky sestavovat volání rozhraní API nasazení. Můžete také zkontrolovat stav nasazení nebo historii nasazení.

  • Nasazení – Volání REST umožňují vývojářům používat jakýkoli typ nasazení, který je k dispozici ve službě Fabric.

  • Vytváření a odstraňování kanálů – K provádění těchto operací použijte kanál Vytvořit a odstranit kanál .

  • Správa pracovních prostorů – S přiřazením pracovního prostoru a zrušením přiřazení pracovního prostoru můžete přiřadit a zrušit přiřazení pracovních prostorů ke konkrétním fázím kanálu.

  • Správa uživatelů kanálu Odstranění uživatele - kanálu umožňuje odebrat uživatele z kanálu. Uživatel kanálu aktualizace umožňuje přidat uživatele do kanálu.

Která nasazení jsou podporována rozhraními API?

Rozhraní API podporují následující typy nasazení:

  • Nasadit vše – jedno volání rozhraní API, které nasadí veškerý obsah v pracovním prostoru do další fáze kanálu. Pro tuto operaci použijte nasadit všechna rozhraní API.

  • Selektivní nasazení – Nasadí v kanálu jenom konkrétní položky, jako jsou sestavy nebo řídicí panely. Pro tuto operaci použijte rozhraní API pro selektivní nasazení .

  • Zpětné nasazení – Nasadí nové položky do předchozí fáze. Zpětné nasazení funguje jenom v případě, že položky nasazené v cílové fázi ještě neexistují. Pro tuto operaci použijte buď rozhraní API pro nasazení všech , nebo selektivní nasazení s isBackwardDeployment nastavenou na Truehodnotu .

  • Aktualizace aplikace – V rámci volání rozhraní API pro nasazení můžete aktualizovat obsah aplikace, která souvisí s danou fází. Aktualizované položky jsou po dokončení nasazení automaticky dostupné koncovým uživatelům. Pro tuto operaci použijte buď rozhraní API Pro nasazení všech, nebo selektivní nasazení s využitím PipelineUpdateApp Nastavení.

Než začnete

Před použitím rozhraní API kanálů nasazení se ujistěte, že máte následující:

Integrace kanálu s Azure DevOps

Pokud chcete automatizovat procesy nasazení z kanálu verze v Azure DevOps, použijte jednu z těchto metod:

  • PowerShell – Skript se přihlásí k prostředkům infrastruktury pomocí instančního objektu nebo uživatele.

  • Nástroje pro automatizaci Power BI – Toto rozšíření funguje s instančním objektemnebo uživatelem.

K dokončení souvisejících operací, jako je import souboru .pbix do kanálu, aktualizace zdrojů dat a parametrů, můžete také použít další volání rozhraní REST API Power BI.

Použití rozšíření Nástrojů pro automatizaci Power BI

Rozšíření nástrojů pro automatizaci Power BI je opensourcové rozšíření Azure DevOps, které poskytuje celou řadu operací kanálů nasazení, které je možné provádět v Azure DevOps. Rozšíření eliminuje potřebu rozhraní API nebo skriptů ke správě kanálů. Každou operaci lze použít jednotlivě k provedení úlohy, například k vytvoření kanálu. Operace je možné použít společně v kanálu Azure DevOps k vytvoření složitějšího scénáře, jako je vytvoření kanálu, přiřazení pracovního prostoru ke kanálu, přidání uživatelů a nasazení.

Po přidání rozšíření nástrojů pro automatizaci Power BI do DevOps musíte vytvořit připojení služby. K dispozici jsou následující připojení:

  • Instanční objekt (doporučeno) – Toto připojení se ověřuje pomocí instančního objektu a vyžaduje tajné a ID aplikace Microsoft Entra. Pokud použijete tuto možnost, ověřte, že jsou povolená nastavení správce služby pro instanční objekt.

  • Uživatelské jméno a heslo – Nakonfigurováno jako obecné připojení služby s uživatelským jménem a heslem. Tato metoda připojení nepodporuje vícefaktorové ověřování. Doporučujeme použít metodu připojení instančního objektu, protože nevyžaduje ukládání přihlašovacích údajů uživatele do Azure DevOps.

Poznámka:

Rozšíření nástrojů pro automatizaci Power BI používá k ukládání přihlašovacích údajů připojení služby Azure DevOps. Další informace najdete v tématu Jak ukládáme vaše přihlašovací údaje pro Azure DevOps Services.

Po povolení připojení služby pro nástroje automatizace Power BI Azure DevOps můžete vytvářet úlohy kanálu. Toto rozšíření zahrnuje následující úlohy kanálů nasazení:

  • Vytvoření nového kanálu

  • Přiřazení pracovního prostoru ke fázi kanálu

  • Přidání uživatele do kanálu nasazení

  • Přidání uživatele do pracovního prostoru

  • Nasazení obsahu do kanálu nasazení

  • Odebrání pracovního prostoru z kanálu nasazení

  • Odstranění kanálu

Přístup k ukázkám PowerShellu

Následující skripty PowerShellu vám pomůžou pochopit, jak provádět několik procesů automatizace. Pokud chcete zobrazit nebo zkopírovat text v ukázce PowerShellu, použijte odkazy v této části.

Můžete si také stáhnout celou PowerBI-Developer-Samples složku GitHubu.

Příklad PowerShellu

Tato část popisuje ukázkový skript PowerShellu, který nasadí sémantický model, sestavu a řídicí panel z fáze vývoje do testovací fáze. Skript pak zkontroluje, jestli nasazení proběhlo úspěšně.

Pokud chcete spustit skript PowerShellu, který provádí nasazení, potřebujete následující komponenty. Do úloh ve fázích kanálu Azure můžete přidat libovolnou z těchto částí.

  1. Přihlášení – Před nasazením obsahu se musíte přihlásit k Fabric pomocí instančního objektu nebo uživatele. Přihlaste se pomocí příkazu Připojení-PowerBIServiceAccount.

  2. Sestavte text požadavku – v této části skriptu určíte, které položky (například sestavy a řídicí panely) nasazujete.

    $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. Nasazení – tady provedete nasazení.

    $url = "pipelines/{0}/Deploy" -f "Insert you pipeline ID here"
    $deployResult = Invoke-PowerBIRestMethod -Url $url  -Method Post -Body $body | ConvertFrom-Json
    
  4. (Volitelné) Oznámení o dokončení nasazení – Vzhledem k tomu, že rozhraní API nasazení je asynchronní, můžete skript naprogramovat tak, aby vás upozorňovat na dokončení nasazení.

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

Úvahy a omezení

  • Nasazení pomocí rozhraní API podléhá stejným omezením jako uživatelské rozhraní kanálů nasazení.

  • Instanční objekt nemůže konfigurovat přihlašovací údaje OAuth. Po nasazení nových položek se přihlášený instanční objekt stane vlastníkem všech nasazených stránkovaných sestav a sémantických modelů. V takových případech není možné dokončit aktualizaci.

  • Nasazení toků dat pomocí instančního objektu se nepodporuje.

  • Maximální počet položek, které lze nasadit v jednom nasazení, je 300.

  • Rozhraní API kanálů nasazení aktuálně podporují jenom položky Power BI.

  • Vytvoření přizpůsobeného kanálu s 2 až 10 fázemi se v současné době podporuje pouze prostřednictvím uživatelského rozhraní.