Udostępnij za pośrednictwem


Automatyzowanie potoku wdrażania dla elementów usługi Power BI przy użyciu interfejsów API

Narzędzie potoków wdrażania usługi Microsoft Power BI umożliwia zespołom analizy biznesowej tworzenie wydajnego i wielokrotnego użytku procesu wydawania zawartości usługi Power BI.

Uwaga

Interfejsy API potoków wdrażania wymienione tutaj dotyczą tylko elementów usługi Power BI. Aby zapoznać się z interfejsami API sieci szkieletowej, zobacz dokumentację interfejsu API sieci szkieletowej.

Aby osiągnąć ciągłą integrację i ciągłe dostarczanie zawartości (CI/CD), wiele organizacji korzysta z narzędzi automatyzacji, w tym usługi Azure DevOps. Organizacje korzystające z usługi Azure DevOps mogą używać rozszerzenia narzędzi automatyzacji usługi Power BI, które obsługuje wiele operacji interfejsu API potoków wdrażania.

Za pomocą potoków wdrażania interfejsy API REST usługi Power BI można zintegrować sieć szkieletową z procesem automatyzacji organizacji. Oto kilka przykładów tego, co można zrobić przy użyciu interfejsów API:

  • Zarządzanie potokami od początku do końca, w tym tworzenie potoku, przypisywanie obszaru roboczego do dowolnego etapu oraz wdrażanie i usuwanie potoku.

  • Przypisz i anuluj przypisanie użytkowników do i z potoku.

  • Zintegruj sieć szkieletową z znanymi narzędziami DevOps, takimi jak Azure DevOps lub GitHub Actions.

  • Zaplanuj automatyczne wdrożenia potoków w określonym czasie.

  • Wdróż wiele potoków w tym samym czasie.

  • Kaskada w zależności od wdrożeń potoków. Jeśli masz zawartość połączoną między potokami, możesz upewnić się, że niektóre potoki są wdrażane przed innymi.

Funkcje interfejsu API potoków wdrażania

Potoki wdrażania interfejsy API REST usługi Power BI umożliwiają wykonywanie następujących funkcji:

  • Uzyskiwanie informacji o potoku — pobieranie informacji o potokach i ich zawartości. Uzyskiwanie informacji o potoku umożliwia dynamiczne tworzenie wywołań interfejsu API wdrażania. Możesz również sprawdzić stan wdrożenia lub historię wdrażania.

  • Wdrażanie — wywołania REST umożliwiają deweloperom korzystanie z dowolnego typu wdrożenia dostępnego w usłudze Fabric.

  • Tworzenie i usuwanie potoków — użyj polecenia Utwórz potok i Usuń potok , aby wykonać te operacje.

  • Zarządzanie obszarami roboczymi — przy użyciu polecenia Przypisz obszar roboczy i Conij przypisz obszar roboczy, można przypisywać i nie przypisywać obszarów roboczych do określonych etapów potoku.

  • Zarządzanie użytkownikami - potoku Usuwanie potoku umożliwia usunięcie użytkownika z potoku. Użytkownik aktualizacji potoku umożliwia dodanie użytkownika do potoku.

Które typy wdrożeń obsługują interfejsy API?

Interfejsy API obsługują następujące typy wdrożeń:

  • Wdróż wszystko — pojedyncze wywołanie interfejsu API, które wdraża całą zawartość w obszarze roboczym do następnego etapu w potoku. W przypadku tej operacji użyj polecenia Wdróż cały interfejs API.

  • Wdrażanie selektywne — wdraża tylko określone elementy, takie jak raporty lub pulpity nawigacyjne, w potoku. W przypadku tej operacji użyj interfejsu API wdrażania selektywnego.

  • Wdrażanie wsteczne — wdraża nowe elementy na poprzednim etapie. Wdrożenie wsteczne działa tylko wtedy, gdy elementy, które zostały wdrożone, nie istnieją jeszcze na etapie docelowym. W przypadku tej operacji użyj interfejsu API Wdróż wszystkie lub Selektywne wdrażanie z ustawioną wartością isBackwardDeployment True.

  • Aktualizowanie aplikacji — w ramach wywołania interfejsu API wdrażania możesz zaktualizować zawartość aplikacji powiązanej z tym etapem. Zaktualizowane elementy są automatycznie dostępne dla użytkowników końcowych po zakończeniu wdrażania. W przypadku tej operacji użyj interfejsu API Wdróż wszystkie lub Selektywne wdrażanie z funkcją PipelineUpdateApp Ustawienia.

Zanim rozpoczniesz

Przed użyciem interfejsów API potoków wdrażania upewnij się, że masz następujące elementy:

  • Jednostka usługi lub użytkownik, który wywołuje interfejsy API, potrzebuje uprawnień potoku i obszaru roboczego oraz dostępu do aplikacji Microsoft Entra.

  • Jeśli zamierzasz używać skryptów programu PowerShell, zainstaluj polecenia cmdlet programu PowerShell Install-Module MicrosoftPowerBIMgmt w usłudze Power BI.

Integrowanie potoku z usługą Azure DevOps

Aby zautomatyzować procesy wdrażania z poziomu potoku wydania w usłudze Azure DevOps, użyj jednej z następujących metod:

  • PowerShell — skrypt loguje się do sieci szkieletowej przy użyciu jednostki usługi lub użytkownika.

  • Narzędzia automatyzacji usługi Power BI — to rozszerzenie współpracuje z jednostką usługi lub użytkownikiem.

Możesz również użyć innych wywołań interfejsu API REST usługi Power BI, aby ukończyć powiązane operacje, takie jak importowanie pliku pbix do potoku, aktualizowanie źródeł danych i parametrów.

Korzystanie z rozszerzenia narzędzi automatyzacji usługi Power BI

Rozszerzenie narzędzi automatyzacji usługi Power BI to rozszerzenie usługi Azure DevOps typu open source , które udostępnia szereg operacji potoków wdrażania, które można wykonać w usłudze Azure DevOps. Rozszerzenie eliminuje konieczność zarządzania potokami przez interfejsy API lub skrypty. Każda operacja może służyć indywidualnie do wykonywania zadania, takiego jak tworzenie potoku. Operacje mogą być używane razem w potoku usługi Azure DevOps w celu utworzenia bardziej złożonego scenariusza, takiego jak tworzenie potoku, przypisywanie obszaru roboczego do potoku, dodawanie użytkowników i wdrażanie.

Po dodaniu rozszerzenia narzędzi automatyzacji usługi Power BI do metodyki DevOps należy utworzyć połączenie usługi. Dostępne są następujące połączenia:

  • Jednostka usługi (zalecana) — to połączenie jest uwierzytelniane przy użyciu jednostki usługi i wymaga wpisu tajnego i identyfikatora aplikacji firmy Microsoft Entra. Jeśli używasz tej opcji, sprawdź, czy ustawienia administratora usługi dla jednostki usługi są włączone.

  • Nazwa użytkownika i hasło — skonfigurowane jako ogólne połączenie z usługą z nazwą użytkownika i hasłem. Ta metoda połączenia nie obsługuje uwierzytelniania wieloskładnikowego. Zalecamy użycie metody połączenia jednostki usługi, ponieważ nie wymaga przechowywania poświadczeń użytkownika w usłudze Azure DevOps.

Uwaga

Rozszerzenie narzędzi automatyzacji usługi Power BI używa połączenia usługi Azure DevOps do przechowywania poświadczeń. Aby uzyskać więcej informacji, zobacz How we store your credentials for Azure DevOps Services (Jak przechowujemy twoje poświadczenia dla usług Azure DevOps Services).

Po włączeniu połączenia z usługą dla narzędzi automatyzacji usługi Power BI usługi Azure DevOps można tworzyć zadania potoku. Rozszerzenie obejmuje następujące zadania potoków wdrażania:

  • Tworzenie nowego potoku

  • Przypisywanie obszaru roboczego do etapu potoku

  • Dodawanie użytkownika do potoku wdrażania

  • Dodawanie użytkownika do obszaru roboczego

  • Wdrażanie zawartości w potoku wdrażania

  • Usuwanie obszaru roboczego z potoku wdrażania

  • Usuwanie potoku

Uzyskiwanie dostępu do przykładów programu PowerShell

Poniższe skrypty programu PowerShell umożliwiają zrozumienie sposobu wykonywania kilku procesów automatyzacji. Aby wyświetlić lub skopiować tekst w przykładzie programu PowerShell, użyj linków w tej sekcji.

Możesz również pobrać cały PowerBI-Developer-Samples folder GitHub.

Przykład programu PowerShell

W tej sekcji opisano przykładowy skrypt programu PowerShell, który wdraża semantyczny model, raport i pulpit nawigacyjny z etapu programowania do etapu testowania. Następnie skrypt sprawdza, czy wdrożenie zakończyło się pomyślnie.

Aby uruchomić skrypt programu PowerShell, który wykonuje wdrożenie, potrzebne są następujące składniki. Możesz dodać dowolną z tych części do zadań na etapach potoku platformy Azure.

  1. Zaloguj się — przed wdrożeniem zawartości musisz zalogować się do sieci szkieletowej przy użyciu jednostki usługi lub użytkownika. Zaloguj się za pomocą polecenia Połączenie-PowerBIServiceAccount.

  2. Skompiluj treść żądania — w tej części skryptu określisz, które elementy (takie jak raporty i pulpity nawigacyjne) są wdrażane.

    $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. Wdróż — w tym miejscu wykonasz wdrożenie.

    $url = "pipelines/{0}/Deploy" -f "Insert you pipeline ID here"
    $deployResult = Invoke-PowerBIRestMethod -Url $url  -Method Post -Body $body | ConvertFrom-Json
    
  4. (Opcjonalnie) Powiadomienie o zakończeniu wdrażania — ponieważ interfejs API wdrażania jest asynchroniczny, możesz zaprogramować skrypt, aby powiadomić Cię o zakończeniu wdrażania.

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

Rozważania i ograniczenia

  • Wdrażanie przy użyciu interfejsów API podlega tym samym ograniczeniom co interfejs użytkownika potoków wdrażania.

  • Jednostka usługi nie może skonfigurować poświadczeń protokołu OAuth . Po wdrożeniu nowych elementów zalogowana jednostka usługi staje się właścicielem wszystkich wdrożonych raportów podzielonych na strony i modeli semantycznych. W takich przypadkach nie można ukończyć odświeżania.

  • Wdrażanie przepływów danych przy użyciu jednostki usługi nie jest obsługiwane.

  • Maksymalna liczba elementów, które można wdrożyć w jednym wdrożeniu, wynosi 300.

  • Interfejsy API potoków wdrażania obsługują obecnie tylko elementy usługi Power BI.

  • Tworzenie dostosowanego potoku 2–10 etapów jest obecnie obsługiwane tylko za pośrednictwem interfejsu użytkownika.