Автоматизация конвейера развертывания для элементов 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:
Управление конвейерами от начала до завершения, включая создание конвейера, назначение рабочей области любому этапу и развертывание и удаление конвейера.
Назначение и отмена назначения пользователей конвейеру и их отмена.
Планирование развертываний конвейеров выполняется автоматически в определенное время.
Разверните несколько конвейеров одновременно.
Каскад в зависимости от развертываний конвейеров. Если у вас есть содержимое, подключенное к конвейерам, можно убедиться, что некоторые конвейеры развертываются перед другими.
Необходимые компоненты
Прежде чем использовать API конвейеров развертывания, убедитесь, что у вас есть следующее:
Субъект-служба или пользователь, вызывающий API, нуждается в разрешениях конвейера и рабочей области и доступе к приложению Microsoft Entra.
Получение сведений о конвейере— получение сведений о конвейерах и их содержимом. Получение сведений о конвейере позволяет динамически создавать вызовы API развертывания. Вы также можете проверить состояние развертывания или журнала развертывания.
Развертывание — вызовы REST позволяют разработчикам использовать любой тип развертывания, доступный в службе Fabric.
Создание и удаление конвейеров— использование конвейера создания и удаления конвейера для выполнения этих операций.
Развертывание всех — один вызов API, который развертывает все содержимое в рабочей области на следующем этапе в конвейере. Для этой операции используйте все API развертывания.
Выборочное развертывание — развертывает только определенные элементы, такие как отчеты или панели мониторинга, в конвейере. Для этой операции используйте API выборочного развертывания .
Обратное развертывание — развертывает новые элементы на предыдущем этапе. Обратное развертывание работает только в том случае, если развернутые элементы еще не существуют на целевом этапе. Для этой операции используйте api развертывания всех или выборочного развертывания с isBackwardDeployment заданным значением True.
Обновление приложения — в рамках вызова API развертывания можно обновить содержимое приложения, связанного с этим этапом. Обновленные элементы автоматически доступны конечным пользователям после завершения развертывания. Для этой операции используйте api развертывания всех или выборочного развертывания с помощью PipelineUpdateAppSettings.
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.
После включения подключения к службе для средств автоматизации Azure DevOps Power BI можно создавать задачи конвейера. Расширение включает следующие задачи конвейеров развертывания:
Создание нового конвейера
Назначение рабочей области этапу конвейера
Добавление пользователя в конвейер развертывания
Добавление пользователя в рабочую область
Развертывание содержимого в конвейере развертывания
Удаление рабочей области из конвейера развертывания
Удаление конвейера
Доступ к примерам PowerShell
Чтобы понять, как выполнять несколько процессов автоматизации, можно использовать следующие скрипты PowerShell. Чтобы просмотреть или скопировать текст в примере PowerShell, используйте ссылки в этом разделе.
В этом разделе описывается пример скрипта PowerShell, который развертывает семантику модели, отчет и панель мониторинга с этапа разработки до этапа тестирования. Затем скрипт проверяет, выполнено ли развертывание успешно.
Чтобы запустить скрипт PowerShell, выполняющий развертывание, вам потребуется следующие компоненты. Вы можете добавить любую из этих частей в задачи на этапах конвейера Azure.
Создайте текст запроса. В этой части скрипта вы указываете, какие элементы (например, отчеты и панели мониторинга) развертываются.
$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.
Создание настраиваемого конвейера из 2–10 этапов в настоящее время поддерживается только через пользовательский интерфейс.