共用方式為


使用 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 DevOpsGitHub Actions

  • 排程管線部署在特定時間自動進行。

  • 同時部署多個管線。

  • 視管線部署而定進行串聯。 如果您有跨管線連線的內容,您可以確定某些管線是在其他管線之前部署的。

必要條件

使用部署管線 API 之前,請確定您有下列項目:

部署管線 API 函式

部署管線 Power BI REST API 可讓您執行下列函式:

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 管線階段中的工作

  1. 登入 - 部署內容之前,您必須使用服務主體使用者登入 Fabric。 使用 Connect-PowerBIServiceAccount 命令登入。

  2. 建置您的要求本文 - 在這個部分的指令碼中,您會指定您要部署的項目 (例如報表和儀表板)。

    $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. 部署 - 您在這裡執行部署。

    $url = "pipelines/{0}/Deploy" -f "Insert you pipeline ID here"
    $deployResult = Invoke-PowerBIRestMethod -Url $url  -Method Post -Body $body | ConvertFrom-Json
    
  4. (選擇性) 部署完成通知 - 因為部署 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 個階段的自訂管線。