Automatice la canalización de implementación mediante API y DevOps.

La herramienta de canalizaciones de implementación de Microsoft Fabric permite a los equipos de inteligencia empresarial crear un proceso de versión eficaz y reutilizable para su contenido 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

Nota:

Actualmente, las API de canalizaciones de implementación solo funcionan para elementos de Power BI.

Las API REST de Power BI de canalizaciones de implementación permiten realizar las funciones siguientes:

¿Qué implementaciones son compatibles con 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 en True.

  • 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:

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.

  1. 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.

  2. 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
    
  3. 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
    
  4. (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.