Automatisieren Ihrer Bereitstellungspipeline mit APIs und Azure DevOps
Mit dem Microsoft Fabric-Bereitstellungspipelinetool können Business Intelligence-Teams einen effizienten und wiederverwendbaren Releaseprozess für ihre Fabric-Inhalte erstellen.
Wichtig
Microsoft Fabric befindet sich in der Vorschau.
Um Continuous Integration und Continuous Delivery (CI/CD) von Inhalten zu erreichen, verwenden viele Organisationen Automatisierungstools, einschließlich Azure DevOps. Organisationen, die Azure DevOps verwenden, können die Power BI-Automatisierungstools-Erweiterung verwenden, die viele API-Vorgänge der Bereitstellungspipelines unterstützt.
Sie können die Fabric-REST-APIs der Bereitstellungspipelines verwenden, um Fabric in den Automatisierungsprozess Ihres organization zu integrieren. Im Folgenden finden Sie einige Beispiele dafür, was mithilfe der APIs möglich ist:
Verwalten von Pipelines von Anfang bis Ende, darunter Erstellen einer Pipeline, Zuweisen eines Arbeitsbereichs zu einer beliebigen Phase sowie Bereitstellen und Löschen einer Pipeline.
Zuweisen von Benutzer*innen zu einer Pipeline und Zuweisungen aufheben.
Integrieren Sie Fabric in vertraute DevOps-Tools wie Azure DevOps oder GitHub Actions.
Planen Sie Pipelinebereitstellungen so, dass sie zu einem bestimmten Zeitpunkt automatisch erfolgen.
Stellen Sie mehrere Pipelines gleichzeitig bereit.
Kaskadieren Sie abhängig von Pipelinebereitstellungen. Wenn Sie über Inhalte verfügen, die pipelineübergreifend verbunden sind, können Sie sicherstellen, dass einige Pipelines vor anderen bereitgestellt werden.
API-Funktionen für Bereitstellungspipelines
Mit den Fabric-REST-APIs der Bereitstellungspipelines können Sie die folgenden Funktionen ausführen:
Abrufen von Pipelineinformationen: Rufen Sie Informationen zu Ihren Pipelines und deren Inhalt ab. Durch das Abrufen der Pipelineinformationen können Sie die Bereitstellungs-API-Aufrufe dynamisch erstellen. Sie können auch den Status einer Bereitstellung oder den Bereitstellungsverlauf überprüfen.
Bereitstellen : Mithilfe der REST-Aufrufe können Entwickler jede Art von Bereitstellung verwenden, die im Fabric-Dienst verfügbar ist.
Erstellen und Löschen von Pipelines: Verwenden Sie Pipeline erstellen und Pipeline löschen, um diese Vorgänge auszuführen.
Arbeitsbereiche verwalten: Mit Arbeitsbereich zuweisen und Zuweisung des Arbeitsbereichs aufheben können Sie Arbeitsbereiche bestimmten Pipelinephasen zuweisen und Zuweisungen aufheben.
Verwalten von Pipelinebenutzer*innen: Mit Delete Pipeline User (Pipelinebenutzer löschen) können Sie Benutzer*innen aus einer Pipeline entfernen. Mit Update Pipeline User (Pipelinebenutzer*innen aktualisieren) können Sie Ihrer Pipeline Benutzer*innen hinzufügen.
Welche Bereitstellungen werden von den APIs unterstützt?
Im Folgenden finden Sie eine Liste der verschiedenen Bereitstellungstypen, die von den APIs unterstützt werden:
Alle bereitstellen: Ein einzelner API-Aufruf, der den gesamten Inhalt im Arbeitsbereich in der nächsten Phase der Pipeline bereitstellt. Verwenden Sie für diesen Vorgang die API Alle bereitstellen.
Selektive Bereitstellung : Stellt nur bestimmte Elemente wie Berichte oder Dashboards in der Pipeline bereit. Verwenden Sie für diesen Vorgang die API Selektive Bereitstellung.
Rückwärtsbereitstellung : Stellt neue Elemente in der vorherigen Phase bereit. Die Rückwärtsbereitstellung funktioniert nur, wenn die bereitgestellten Elemente nicht bereits in der Zielphase vorhanden sind. Verwenden Sie für diesen Vorgang entweder die API Alle bereitstellen oder die API Selektive Bereitstellung, wobei
isBackwardDeployment
aufTrue
festgelegt ist.App aktualisieren: Im Rahmen des API-Aufrufs zur Bereitstellung können Sie den Inhalt der App aktualisieren, die mit dieser Phase verknüpft ist. Aktualisierte Elemente stehen Ihren Endbenutzern automatisch zur Verfügung, nachdem eine Bereitstellung abgeschlossen wurde. Verwenden Sie für diesen Vorgang entweder die API Alle bereitstellen oder die API Selektive Bereitstellung mit PipelineUpdateAppSettings.
Voraussetzungen
Bevor Sie die Bereitstellungspipeline-APIs verwenden, stellen Sie sicher, dass Sie über Folgendes verfügen:
Der Dienstprinzipal oder der Benutzer, der die APIs aufrufen wird, benötigt Pipeline- und Arbeitsbereichsberechtigungen sowie Zugriff auf eine Azure AD-Anwendung.
Wenn Sie PowerShell-Skripts verwenden möchten, installieren Sie die Power BI-PowerShell-Cmdlets Install-Module MicrosoftPowerBIMgmt.
Integrieren Ihrer Pipeline in Azure DevOps
Verwenden Sie eine der folgenden Methoden, um die Bereitstellungsprozesse in Ihrer Releasepipeline in Azure DevOps zu automatisieren:
PowerShell : Das Skript meldet sich mit einem Dienstprinzipal oder einem Benutzer bei Fabric an.
Power BI automation tools: Diese Erweiterung kann mit einem Dienstprinzipal oder einem Benutzer verwendet werden.
Sie können auch andere Fabric-REST-API-Aufrufe verwenden, um verwandte Vorgänge abzuschließen, z. B. das Importieren einer PBIX-Datei in die Pipeline, das Aktualisieren von Datenquellen und Parametern.
Verwenden der Erweiterung „Power BI automation tools“
Die Erweiterung „Power BI automation tools“ ist eine Open-Source-Erweiterung für Azure DevOps, die Vorgänge für Bereitstellungspipelines bietet, die in Azure DevOps ausgeführt werden können. Durch die Erweiterung entfällt die Notwendigkeit, Pipelines mithilfe von APIs und Skripts zu verwalten. Jeder Vorgang kann einzeln verwendet werden, um eine Aufgabe wie das Erstellen einer Pipeline auszuführen. Vorgänge können zusammen in einer Azure DevOps-Pipeline verwendet werden, um ein komplexeres Szenario zu erstellen, z. B. das Erstellen einer Pipeline, das Hinzufügen eines Arbeitsbereichs zur Pipeline, das Hinzufügen von Benutzern und das Bereitstellen.
Nachdem Sie die Erweiterung Power BI automation tools zu DevOps hinzugefügt haben, müssen Sie eine Dienstverbindung erstellen. Die folgenden Verbindungen können verwendet werden:
Dienstprinzipal (empfohlen): Diese Verbindung wird mit einem Dienstprinzipal authentifiziert und erfordert den geheimen Schlüssel und die Anwendungs-ID der Azure AD-App. Wenn Sie diese Option verwenden, überprüfen Sie, ob die Einstellungen des Dienstadministrators für den Dienstprinzipal aktiviert sind.
Benutzername und Kennwort: Diese Verbindung ist als generische Dienstverbindung mit einem Benutzernamen und einem Kennwort konfiguriert. Mit dieser Verbindungsmethode ist keine Multi-Faktor-Authentifizierung möglich. Es wird empfohlen, die Dienstprinzipal-Verbindungsmethode zu verwenden, da dabei keine Anmeldeinformationen von Benutzern auf Azure DevOps gespeichert werden müssen.
Hinweis
Die Erweiterung „Power BI automation tools“ verwendet eine Azure DevOps-Dienstverbindung zum Speichern von Anmeldeinformationen. Weitere Informationen finden Sie unter Speichern Ihrer Anmeldeinformationen für Azure DevOps Services.
Nachdem Sie eine Dienstverbindung für Ihre „Power BI automation tools“-Erweiterung für Azure DevOps hergestellt haben, können Sie Pipelineaufgaben erstellen. In der Erweiterung sind die folgenden Aufgaben für Bereitstellungspipelines enthalten:
Erstellen einer neuen Pipeline
Zuweisen eines Arbeitsbereichs zu einer Pipelinephase
Hinzufügen eines Benutzers zu einer Bereitstellungspipeline
Hinzufügen eines Benutzers zu einem Arbeitsbereich
Bereitstellen von Inhalten in einer Bereitstellungspipeline
Entfernen eines Arbeitsbereichs aus einer Bereitstellungspipeline
Löschen einer Pipeline
Zugreifen auf die PowerShell-Beispiele
Die folgenden PowerShell-Skripts verdeutlichen, wie mehrere Automatisierungsprozesse ausgeführt werden. Verwenden Sie die Links in diesem Abschnitt, um den Text in einem PowerShell-Beispiel anzuzeigen oder zu kopieren.
Sie können auch den gesamten GitHub-Ordner PowerBI-Developer-Samples
herunterladen.
PowerShell-Beispiel
In diesem Abschnitt wird ein PowerShell-Beispielskript beschrieben, das ein Dataset, einen Bericht und ein Dashboard von der Entwicklungsphase bis zur Testphase bereitstellt. Das Skript überprüft dann, ob die Bereitstellung erfolgreich war.
Sie benötigen die folgenden Komponenten, um ein PowerShell-Skript auszuführen, das eine Bereitstellung ausführt. Sie können jeden dieser Teile in Aufgaben in Ihren Azure-Pipelinephasen hinzufügen.
Anmelden : Bevor Sie Ihre Inhalte bereitstellen können, müssen Sie sich mit einem Dienstprinzipal oder einem Benutzer bei Fabric anmelden. Verwenden Sie den Befehl Connect-PowerBIServiceAccount, um sich anzumelden.
Erstellen Des Anforderungstexts : In diesem Teil des Skripts geben Sie an, welche Elemente (z. B. Berichte und Dashboards) Bereitgestellt werden.
$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
Bereitstellen: Hier führen Sie die Bereitstellung aus.
$url = "pipelines/{0}/Deploy" -f "Insert you pipeline ID here" $deployResult = Invoke-PowerBIRestMethod -Url $url -Method Post -Body $body | ConvertFrom-Json
(Optional) Benachrichtigung zum Abschluss der Bereitstellung: Da die Bereitstellungs-API asynchron ist, können Sie das Skript so programmieren, dass Sie benachrichtigt werden, wenn die Bereitstellung abgeschlossen ist.
$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 }
Überlegungen und Einschränkungen
Die Bereitstellung mithilfe von APIs unterliegt den gleichen Einschränkungen wie die Benutzeroberfläche der Bereitstellungspipelines.
Ein Dienstprinzipal kann keine OAuth-Anmeldeinformationen konfigurieren. Nachdem Sie neue Elemente bereitgestellt haben, wird der angemeldete Dienstprinzipal Besitzer aller bereitgestellten paginierten Berichte und Datasets. In solchen Fällen kann eine Aktualisierung nicht abgeschlossen werden.
Das Bereitstellen von Dataflows mithilfe eines Dienstprinzipals wird nicht unterstützt.
Die maximale Anzahl von Elementen, die in einer einzelnen Bereitstellung bereitgestellt werden können, beträgt 300.