Automatización de la canalización de implementación para elementos de Power BI mediante API
La herramienta de canalizaciones de implementación de Microsoft Power BI permite a los equipos de inteligencia empresarial crear un proceso de versión eficaz y reutilizable para su contenido de Power BI.
Nota:
Las API de canalizaciones de implementación que se enumeran aquí solo se aplican a los elementos de Power BI. Para las API de Fabric, consulte la documentación de la API de Fabric.
Para lograr la integración continua y entrega continua (CI/CD) del contenido, muchas organizaciones usan diversas herramientas de automatización, como Azure DevOps. Las organizaciones que usan Azure DevOps pueden usar la extensión Power BI automation tools, que admite muchas de las operaciones de API de canalizaciones de implementación.
Puede usar las API de REST de Power BI de canalizaciones de implementación para integrar Fabric en el proceso de automatización de la organización. Estos son algunos ejemplos de lo que se puede hacer mediante las API:
Administrar canalizaciones de principio a fin, incluida la creación de una canalización, la asignación de un área de trabajo a cualquier fase, la implementación y eliminación de la canalización.
Asignar y desasignar usuarios a una canalización y desde ella.
Integrar Fabric en herramientas de DevOps conocidas, como Azure DevOps o Acciones de GitHub.
Programar implementaciones de canalización para que se produzcan automáticamente en un momento específico.
Implementar varias canalizaciones al mismo tiempo.
Aplicar en cascada en función de las implementaciones de canalización. Si tiene contenido conectado entre canalizaciones, puede asegurarse de que algunas canalizaciones se implementen antes que otras.
Funciones de API de canalizaciones de implementación
Las API REST de Power BI de canalizaciones de implementación permiten realizar las funciones siguientes:
Obtener información de canalización: recupere información sobre las canalizaciones y su contenido. La obtención de la información de canalización le permite compilar dinámicamente las llamadas API de implementación. También puede comprobar el estado de una implementación o el historial de implementación.
Implementar: las llamadas REST permiten a los desarrolladores usar cualquier tipo de implementación disponible en el servicio Fabric.
Crear y eliminar canalizaciones: use las opciones Crear canalización y Eliminar la canalización para realizar estas operaciones.
Administrar áreas de trabajo: con Asignar área de trabajo y Desasignar área de trabajo, puede asignar y desasignar áreas de trabajo a fases de canalización específicas.
Administrar usuarios de la canalización - Eliminar usuario de canalización le permite quitar un usuario de una canalización. Actualizar usuario de canalización permite agregar un usuario a la canalización.
¿Qué tipos de implementación admiten las API?
Las API admiten los siguientes tipos de implementación:
Implementar todo: una única llamada API que implementa todo el contenido del área de trabajo en la siguiente fase de la canalización. Para esta operación, use la API Implementar todo.
Implementación selectiva: solo se implementan elementos específicos, como informes o paneles, en la canalización. Para esta operación, use la API Implementación selectiva.
Implementación regresiva: implementa nuevos elementos en la fase anterior. La implementación regresiva solo funciona si los elementos que se implementan no existen en la fase de destino. Para esta operación, use las API Implementar todo o Implementación selectiva, con
isBackwardDeployment
establecido enTrue
.Actualizar aplicación: como parte de la llamada API de implementación, puede actualizar el contenido de la aplicación relacionado con esa fase. Los elementos actualizados están disponibles automáticamente para los usuarios finales después de que se haya completado una implementación. Para esta operación, use las API Implementar todo o Implementación selectiva, con PipelineUpdateAppSettings.
Antes de empezar
Antes de usar las API de canalización de implementación, asegúrese de que tiene lo siguiente:
La entidad de servicio, o el usuario que llama a las API, necesita permisos de canalización y área de trabajo, así como acceso a una aplicación Microsoft Entra.
Si va a usar scripts de PowerShell, instale los cmdlets de PowerShell Install-Module MicrosoftPowerBIMgmt para Power BI.
Integración de la canalización con Azure DevOps
Para automatizar los procesos de implementación desde dentro de la canalización de versión en Azure DevOps, use uno de estos métodos:
PowerShell: el script inicia sesión en Fabric mediante una entidad de servicio o un usuario.
Power BI automation tools: esta extensión funciona con una entidad de servicio o un usuario.
También puede usar otras API REST de Power BI para completar operaciones relacionadas, como importar un archivo .pbix en la canalización o actualizar orígenes de datos y parámetros.
Uso de la extensión Power BI automation tools
La extensión Power BI automation tools es una extensión de Azure DevOps de código abierto que proporciona una variedad de operaciones de canalizaciones de implementación que se pueden realizar en Azure DevOps. La extensión elimina la necesidad de usar API o scripts para administrar canalizaciones. Cada operación se puede usar individualmente para realizar una tarea, como la creación de una canalización. Las operaciones se pueden usar conjuntamente en una canalización de Azure DevOps para crear un escenario más complejo, como crear una canalización, asignar un área de trabajo a la canalización, agregar usuarios y realizar implementaciones.
Después de agregar la extensión Power BI automation tools a DevOps, debe crear una conexión de servicio. Están disponibles las conexiones siguientes:
Entidad de servicio (recomendada): esta conexión se autentica mediante una entidad de servicio y requiere el secreto y el identificador de la aplicación de Microsoft Entra. Cuando use esta opción, compruebe que la configuración del administrador de servicio para la entidad de servicio esté habilitada.
Nombre de usuario y contraseña: se configura como una conexión de servicio genérica con un nombre de usuario y una contraseña. Este método de conexión no admite la autenticación multifactor. Recomendamos usar el método de conexión de la entidad de servicio porque no requiere almacenar credenciales de usuario en Azure DevOps.
Nota
La extensión Power BI automation tools usa una conexión de servicio de Azure DevOps para almacenar las credenciales. Para más información, consulte Cómo almacenamos sus credenciales para Azure DevOps Services.
Después de habilitar una conexión de servicio de Azure DevOps para Power BI automation tools, puede crear tareas de canalización. La extensión incluye las tareas de canalizaciones de implementación siguientes:
Creación de una canalización
Asignación de un área de trabajo a una fase de canalización
Adición de un usuario a una canalización de implementación
Adición de un usuario a un área de trabajo
Implementación de contenido en una canalización de implementación
Eliminación de un área de trabajo de una canalización de implementación
Eliminación de una canalización
Acceso a los ejemplos de PowerShell
Puede usar los siguientes scripts de PowerShell para comprender cómo realizar varios procesos de automatización. Para ver o copiar el texto en un ejemplo de PowerShell, use los vínculos de esta sección.
También puede descargar toda la carpeta de GitHub PowerBI-Developer-Samples
.
Ejemplo de PowerShell
Esta sección describe un script PowerShell de ejemplo que implementa un modelo semántico, un informe y un cuadro de mando desde la fase de desarrollo a la fase de prueba. Después, el script comprueba si la implementación se ha realizado correctamente.
Para ejecutar un script PowerShell que realice una implementación, necesita los siguientes componentes. Puede agregar cualquiera de estos elementos a tareas en las fases de la canalización de Azure.
Inicio de sesión: para poder implementar el contenido, debe iniciar sesión en Fabric mediante una entidad de servicio o un usuario. Use el comando Connect-PowerBIServiceAccount para iniciar sesión.
Creación del cuerpo de la solicitud: en esta parte del script, especifique qué elementos (como informes y paneles) va a implementar.
$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
Implementación: aquí se realiza la implementación.
$url = "pipelines/{0}/Deploy" -f "Insert you pipeline ID here" $deployResult = Invoke-PowerBIRestMethod -Url $url -Method Post -Body $body | ConvertFrom-Json
(Opcional) Notificación de finalización de la implementación: como la API de implementación es asincrónica, puede programar el script para que le notifique cuándo se completa la implementación.
$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 }
Consideraciones y limitaciones
La implementación mediante API está sujeta a las mismas limitaciones que la interfaz de usuario de canalizaciones de implementación.
Una entidad de servicio no puede configurar las credenciales de OAuth. Después de implementar nuevos elementos, la entidad de servicio con la sesión iniciada se convierte en el propietario de los informes paginados y modelos semánticos implementados. En esos casos, no se puede completar una actualización.
No se admite la implementación de flujos de datos mediante una entidad de servicio.
El número máximo de elementos que se pueden implementar en una sola implementación es 300.
Actualmente, las API de canalizaciones de implementación solo admiten elementos de Power BI.
Actualmente, la creación de una canalización personalizada de 2 a 10 etapas sólo es posible a través de la interfaz de usuario.