使用 API 自動化 Power BI 項目的部署管線
Microsoft Power BI 部署管線工具可讓商業智慧小組為其 Power BI 內容建置有效率且可重複使用的發行程序。
注意
此處所列的部署管線 API 僅適用於 Power BI 項目。 如需 Fabric API,請參閱 Fabric API 文件。
為了達到內容的持續整合與持續傳遞 (CI/CD),許多組織都使用自動化工具,包括 Azure DevOps。 使用 Azure DevOps 的組織可以使用 Power BI 自動化工具延伸項目,其支援許多部署管線 API 作業。
您可以使用 部署管線 Power BI REST API,將 Fabric 整合到組織的自動化程序。 以下是一些使用 API 可以完成的範例:
從頭到尾管理管線,包括建立管線、將工作區指派給任何階段,以及部署和刪除管線。
在管線中指派和取消指派使用者。
將 Fabric 整合到熟悉的 DevOps 工具中,例如 Azure DevOps 或 GitHub Actions。
排程管線部署在特定時間自動進行。
同時部署多個管線。
視管線部署而定進行串聯。 如果您有跨管線連線的內容,您可以確定某些管線是在其他管線之前部署的。
必要條件
使用部署管線 API 之前,請確定您有下列項目:
服務主體,或是會呼叫 API 的使用者,需要 Microsoft Entra 應用程式的管線和工作區權限和存取權。
如果您打算使用 PowerShell 指令碼,請安裝 Power BI PowerShell Cmdlet Install-Module MicrosoftPowerBIMgmt。
部署管線 API 函式
部署管線 Power BI REST API 可讓您執行下列函式:
取得管線資訊 - 擷取管線及其內容的相關資訊。 取得管線資訊可讓您動態建置部署 API 呼叫。 您也可以檢查部署的狀態,或部署歷程記錄。
部署 - REST 呼叫可讓開發人員使用 Fabric 服務中可用的任何類型部署。
API 支援哪些部署類型?
API 支援下列部署類型:
全部部署 - 單一 API 呼叫,會將工作區中的所有內容部署到管線中的下一個階段。 針對此作業,請使用全部部署 API。
選擇性部署 - 只在管線中部署特定的項目,例如報表或儀表板。 針對此作業,請使用選擇性部署 API。
回溯部署 - 將新的項目部署到上一個階段。 只有在部署的項目不存在於目標階段時,回溯部署才能運作。 針對這項作業,請使用全部部署或選擇性部署 API,並將
isBackwardDeployment
設定為True
。更新應用程式 - 在部署 API 呼叫中,您可以更新與該階段相關的應用程式內容。 部署完成後,您的終端使用者會自動取得更新的項目。 針對此作業,請使用全部部署或選擇性部署 API,搭配 PipelineUpdateAppSettings。
整合管線與 Azure DevOps
若要在 Azure DevOps 的發行管線內自動化部署程序,請使用下列其中一種方法:
PowerShell - 指令碼會藉由使用服務主體或使用者登入 Fabric。
Power BI 自動化工具 - 此延伸模組適用於服務主體或使用者。
您也可以使用其他 Power BI REST API 呼叫來完成相關作業,例如將 .pbix 匯入管線、更新資料來源和參數。
使用 Power BI 自動化工具延伸模組
Power BI 自動化工具延伸模組是一種開放原始碼 Azure DevOps 延伸模組,提供可在 Azure DevOps 中執行的一系列部署管線作業。 延伸模組不需要 API 或指令碼來管理管線。 每個作業都可以個別用來執行工作,例如建立管線。 作業可以在 Azure DevOps 管線中一起使用,以建立更複雜的案例,例如建立管線、將工作區指派給管線、新增使用者和部署。
將 Power BI 自動化工具延伸模組新增至 DevOps 之後,您必須建立服務連線。 有下列連線可供使用:
服務主體 (建議) - 此連線會藉由使用服務主體進行驗證,並要求 Microsoft Entra 應用程式的祕密和應用程式識別碼。 當您使用此選項時,請確認已啟用服務主體的服務系統管理員設定。
使用者名稱和密碼 - 以使用者名稱和密碼設定為一般服務連線。 此連線方法不支援多重要素驗證。 建議您使用服務主體連線方法,因為這個方法不需要將使用者認證儲存在 Azure DevOps 上。
注意
Power BI 自動化工具延伸模組會使用 Azure DevOps 服務連線來儲存認證。 如需詳細資訊,請參閱如何儲存 Azure DevOps Services 的認證。
為 Azure DevOps Power BI 自動化工具啟用服務連線之後,您可以建立管線工作。 延伸模組包含下列部署管線工作:
建立新管線
將工作區指派給管線階段
將使用者新增至部署管線
將使用者新增至工作區
將內容部署至部署管線
從部署管線移除工作區
刪除管線
存取 PowerShell 範例
您可以使用下列 PowerShell 指令碼來了解如何執行數個自動化程序。 若要檢視或複製 PowerShell 範例中的文字,請使用本節中的連結。
您也可以下載整個 PowerBI-Developer-Samples
GitHub 資料夾。
PowerShell 範例
本節說明從開發階段到測試階段部署語意模型、報表和儀表板的範例 PowerShell 指令碼。 指令碼接著會檢查部署是否成功。
若要執行可執行部署的 PowerShell 指令碼,您需要下列元件。 您可以將上述任何部分新增至 Azure 管線階段中的工作。
登入 - 部署內容之前,您必須使用服務主體或使用者登入 Fabric。 使用 Connect-PowerBIServiceAccount 命令登入。
建置您的要求本文 - 在這個部分的指令碼中,您會指定您要部署的項目 (例如報表和儀表板)。
$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
部署 - 您在這裡執行部署。
$url = "pipelines/{0}/Deploy" -f "Insert you pipeline ID here" $deployResult = Invoke-PowerBIRestMethod -Url $url -Method Post -Body $body | ConvertFrom-Json
(選擇性) 部署完成通知 - 因為部署 API 是非同步的,因此您可以撰寫指令碼,在部署完成時通知您。
$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 }
考量與限制
使用 API 進行部署受限於與部署管線使用者介面相同的限制。
服務主體無法設定 OAuth 認證。 部署新項目之後,登入服務主體成為任何已部署編頁報表和語意模型的擁有者。 在這種情況下,無法完成重新整理。
不支援使用服務主體部署資料流程。
可在單一部署中部署的項目數目上限為 300 個。
部署管線 API 目前僅支援 Power BI 項目。
目前僅透過 UI 支援建立 2-10 個階段的自訂管線。