使用 API 和 Azure DevOps 將部署管線自動化

Microsoft Fabric 部署管線 工具可讓商業智慧小組為其 Fabric 內容建置有效率且可重複使用的發行程式。

為了達到內容的持續整合和持續傳遞(CI/CD),許多組織都使用自動化工具,包括 Azure DevOps。 使用 Azure DevOps 的組織可以使用 Power BI 自動化工具 擴充功能,其支援許多部署管線 API 作業。

您可以使用 部署管線 Power BI REST API ,將 Fabric 整合到組織的自動化程式中。 以下是一些使用 API 可以完成的範例:

  • 從頭到尾管理管線,包括建立管線、將工作區指派給任何階段,以及部署和刪除管線。

  • 在管線中指派和取消指派使用者。

  • 將 Fabric 整合到熟悉的 DevOps 工具,例如 Azure DevOpsGitHub Actions

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

  • 同時部署多個管線。

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

部署管線 API 函式

注意

部署管線 API 目前僅適用於Power BI專案。

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

  • 取得管線資訊 - 擷取管線及其內容的相關信息。 取得管線資訊可讓您動態建置部署 API 呼叫。 您也可以檢查 部署部署歷程記錄的狀態。

  • 部署 - REST 呼叫可讓開發人員使用 Fabric 服務中可用的任何類型的部署。

  • 建立刪除 管線 - 使用 建立管線刪除管線 來執行這些作業。

  • 管理工作區 - 使用 [指派工作區 ] 和 [取消指派工作區],您可以將工作區指派和取消指派給特定管線階段。

  • 管理管線使用者 - 刪除管線使用者 可讓您從管線中移除使用者。 更新管線使用者 可讓您將使用者新增至管線。

API 支援哪些部署?

API 支援下列部署類型:

  • 全部部署 - 單一 API 呼叫,會將工作區中的所有內容部署到管線中的下一個階段。 針對此作業,請使用 部署所有 API。

  • 選擇性部署 - 僅部署管線中的特定專案,例如報表或儀錶板。 針對此作業,請使用 選擇性部署 API。

  • 回溯部署 - 將新專案部署到上一個階段。 只有在部署的專案不存在於目標階段時,回溯部署才能運作。 針對此工作,請使用 [全部 部署] 或 [選擇性部署 API],並將 isBackwardDeployment 設定為 True

  • 更新應用程式 - 在部署 API 呼叫中,您可以更新與該階段相關的應用程式內容。 部署完成後,您的終端用戶會自動取得更新的專案。 針對此作業,請使用 [全部部署][選擇性部署 API],搭配 PipelineUpdateApp 設定

開始之前

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

整合管線與 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,才能部署內容。 使用 連線-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階段的自定義管線。