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

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

Důležité

Microsoft Fabric je ve verzi Preview.

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

K integraci prostředků infrastruktury do procesu automatizace vaší organizace můžete použít rozhraní REST API pro nasazení . Tady je několik příkladů toho, co je možné pomocí rozhraní API provést:

  • Správa kanálů 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ů k kanálu a z kanálu.

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

  • Naplánujte nasazení kanálu tak, aby probíhala automaticky v určitou dobu.

  • Nasaďte více kanálů najednou.

  • Kaskádové v závislosti na nasazení kanálu. Pokud máte obsah, který je připojený 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.

Rozhraní REST API pro prostředky infrastruktury pro nasazení umožňují provádět následující funkce:

Která nasazení podporují rozhraní API?

Tady je seznam různých typů nasazení, které rozhraní API podporují:

  • 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 rozhraní API Deploy all .

  • 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 nasazené položky ještě v cílové fázi neexistují. Pro tuto operaci použijte rozhraní API Pro nasazení vše nebo Rozhraní API pro selektivní nasazení s nastavenou isBackwardDeployment na Truehodnotu .

  • Aktualizovat aplikaci – V rámci volání rozhraní API pro nasazení můžete aktualizovat obsah aplikace, který s danou fází souvisí. Aktualizované položky jsou po dokončení nasazení automaticky dostupné koncovým uživatelům. Pro tuto operaci použijte rozhraní API Nasazení vše nebo Výběrové nasazení s PipelineUpdateAppSettings.

Než začnete

Než použijete rozhraní API kanálů nasazení, ujistěte se, ž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 objektem nebo 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 pro prostředky infrastruktury.

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

Rozšíření Power BI Automation Tools je rozšíření open source Azure DevOps, které poskytuje ř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 je možné použít jednotlivě k provedení úkolu, například k vytvoření kanálu. Operace je možné v kanálu Azure DevOps použít společně 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 je potřeba 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ý klíč Azure AD aplikace a ID aplikace. Při použití této možnosti ověřte, že je pro instanční objekt povolené nastavení správce služby .

  • Uživatelské jméno a heslo – nakonfigurované jako obecné připojení ke službě 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 v 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 pro automatizaci Azure DevOps Power BI můžete vytvářet úlohy kanálu. Rozšíření zahrnuje následující úlohy kanálů nasazení:

  • Vytvoření nového kanálu

  • Přiřazení pracovního prostoru k 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

K pochopení, jak provádět několik procesů automatizace, můžete použít následující skripty PowerShellu. 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ý nasazuje datovou sadu, sestavu a řídicí panel od fáze vývoje do fáze testu. Skript pak zkontroluje, jestli bylo nasazení úspěšné.

Ke spuštění skriptu PowerShellu, který provádí nasazení, budete potřebovat následující komponenty. Libovolnou z těchto částí můžete přidat do úloh ve fázích kanálu Azure.

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

  2. Sestavení textu 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. Deploy – 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 pro nasazení je asynchronní, můžete skript naprogramovat tak, aby vás upozornil 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
    }
    

Důležité informace a omezení

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

  • Instanční objekt nemůže nakonfigurovat 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 datových sad. V takových případech nelze aktualizaci dokončit.

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

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

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

Další kroky