Поделиться через


Автоматизация конвейера развертывания для элементов Power BI с помощью API

Средство конвейеров развертывания Microsoft Power BI позволяет группам бизнес-аналитики создавать эффективный и повторно используемый процесс выпуска для содержимого Power BI.

Примечание.

API конвейеров развертывания, перечисленные здесь, применяются только к элементам Power BI. Сведения об API Fabric см. в документации по API Fabric.

Для обеспечения непрерывной интеграции и непрерывной доставки содержимого (CI/CD) многие организации используют средства автоматизации, включая Azure DevOps. Организации, использующие Azure DevOps, могут использовать расширение средств автоматизации Power BI, которое поддерживает многие операции API конвейеров развертывания.

Вы можете использовать конвейеры развертывания REST API Power BI для интеграции Fabric в процесс автоматизации организации. Ниже приведены несколько примеров того, что можно сделать с помощью API:

  • Управление конвейерами от начала до завершения, включая создание конвейера, назначение рабочей области любому этапу и развертывание и удаление конвейера.

  • Назначение и снятие назначения пользователей на конвейер и с него.

  • Интеграция Fabric в знакомые средства DevOps, такие как Azure DevOps или GitHub Actions.

  • Планирование развертываний конвейеров выполняется автоматически в определенное время.

  • Разверните несколько конвейеров одновременно.

  • Каскад в зависимости от развертываний конвейеров. Если у вас есть содержимое, подключенное к конвейерам, можно убедиться, что некоторые конвейеры развертываются перед другими.

Предварительные условия

Прежде чем использовать API конвейеров развертывания, убедитесь в следующем:

Функции API конвейеров развертывания

Конвейеры развертывания REST API Power BI позволяют выполнять следующие функции:

Какие типы развертывания поддерживают API?

API поддерживают следующие типы развертывания:

  • Развернуть всё — один вызов API, который развертывает всё содержимое в рабочей области на следующем этапе в цепочке. Для этой операции используйте API Deploy all.

  • Выборочное развертывание — развертывает только определенные элементы, такие как отчеты или панели мониторинга, в конвейере. Для этой операции используйте API выборочного развертывания .

  • Обратное развертывание — развертывает новые элементы на предыдущем этапе. Обратное развертывание работает только в том случае, если развернутые элементы еще не существуют на целевом этапе. Для этой операции используйте либо API развертывания всего, либо API выборочного развертывания с isBackwardDeployment заданным значением True.

  • Обновление приложения — в рамках вызова API развертывания можно обновить содержимое приложения, связанного с этим этапом. Обновленные элементы автоматически доступны конечным пользователям после завершения развертывания. Для этой операции используйте либо API Развёртывание всех или Развёртывание выборочно с PipelineUpdateAppSettings.

Интеграция конвейера с Azure DevOps

Чтобы автоматизировать процессы развертывания из конвейера выпуска в Azure DevOps, используйте один из следующих методов:

  • PowerShell — сценарий входит в Fabric с помощью субъекта-службы или пользователя.

  • Средства автоматизации Power BI. Это расширение работает с субъектом-службойили пользователем.

Вы также можете использовать другие вызовы REST API Power BI для выполнения связанных операций, таких как импорт 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.

  • Создание настраиваемого конвейера из 2–10 этапов в настоящее время поддерживается только через пользовательский интерфейс.