使用 API 和 Azure DevOps 將部署管線自動化
Microsoft Fabric 部署管線 工具可讓商業智慧小組為其 Fabric 內容建置有效率且可重複使用的發行程式。
為了達到內容的持續整合和持續傳遞(CI/CD),許多組織都使用自動化工具,包括 Azure DevOps。 使用 Azure DevOps 的組織可以使用 Power BI 自動化工具 擴充功能,其支援許多部署管線 API 作業。
您可以使用 部署管線 Power BI REST API ,將 Fabric 整合到組織的自動化程式中。 以下是一些使用 API 可以完成的範例:
從頭到尾管理管線,包括建立管線、將工作區指派給任何階段,以及部署和刪除管線。
在管線中指派和取消指派使用者。
將 Fabric 整合到熟悉的 DevOps 工具,例如 Azure DevOps 或 GitHub Actions。
排程管線部署在特定時間自動進行。
同時部署多個管線。
視管線部署而定,串聯。 如果您有跨管線連線的內容,您可以確定某些管線是在其他管線之前部署的。
部署管線 API 函式
注意
部署管線 API 目前僅適用於Power BI專案。
部署管線 Power BI REST API 可讓您執行下列函式:
取得管線資訊 - 擷取管線及其內容的相關信息。 取得管線資訊可讓您動態建置部署 API 呼叫。 您也可以檢查 部署 或 部署歷程記錄的狀態。
部署 - REST 呼叫可讓開發人員使用 Fabric 服務中可用的任何類型的部署。
API 支援哪些部署?
API 支援下列部署類型:
全部部署 - 單一 API 呼叫,會將工作區中的所有內容部署到管線中的下一個階段。 針對此作業,請使用 部署所有 API。
選擇性部署 - 僅部署管線中的特定專案,例如報表或儀錶板。 針對此作業,請使用 選擇性部署 API。
回溯部署 - 將新專案部署到上一個階段。 只有在部署的專案不存在於目標階段時,回溯部署才能運作。 針對此工作,請使用 [全部 部署] 或 [選擇性部署 API],並將
isBackwardDeployment
設定為True
。更新應用程式 - 在部署 API 呼叫中,您可以更新與該階段相關的應用程式內容。 部署完成後,您的終端用戶會自動取得更新的專案。 針對此作業,請使用 [全部部署] 或 [選擇性部署 API],搭配 PipelineUpdateApp 設定。
開始之前
使用部署管線 API 之前,請確定您有下列專案:
如果您要使用 PowerShell 腳本,請安裝 Power BI PowerShell Cmdlet Install-Module MicrosoftPowerBIMgmt。
整合管線與 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,才能部署內容。 使用 連線-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階段的自定義管線。
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應