Automatizar o pipeline de implantação usando as APIs e o Azure DevOps

A ferramenta de pipelines de implantação do Microsoft Fabric permite que as equipes de business intelligence criem um processo de versão eficiente e reutilizável nos próprios conteúdos do Microsoft Fabric.

Para obter CI/CD (integração contínua e entrega contínua) de conteúdo, muitas organizações usam ferramentas de automação, incluindo o Azure DevOps. As organizações que usam o Azure DevOps podem usar a extensão Ferramenta de automação do Power BI, que dá suporte a muitas das operações de API de pipelines de implantação.

Você pode usar as APIs REST de pipelines de implantação do Power BI para integrar o Fabric ao processo de automação da sua organização. Aqui estão alguns exemplos do que pode ser feito usando as APIs:

  • Gerenciar pipelines do início ao fim, incluindo a criação de um pipeline, a atribuição de um espaço de trabalho a qualquer estágio e a implantação e exclusão do pipeline.

  • Atribuir e cancelar a atribuição de usuários de e para um pipeline.

  • Integrar o Fabric nas ferramentas DevOps conhecidas, como Azure DevOps ou GitHub Actions.

  • Agendar implantações de pipeline para que ocorram automaticamente em um momento específico.

  • Implantar vários pipelines ao mesmo tempo.

  • Cascata dependendo das implantações de pipeline. Se você tiver conteúdo conectado entre pipelines, poderá garantir que alguns pipelines sejam implantados antes de outros.

Funções de API de pipelines de implantação

Observação

Atualmente, as APIs dos pipelines de implantação só funcionam com os itens do Power BI.

Os pipelines de implantação das APIs REST do Power BI permitem que você execute as seguintes funções:

Quais implantações são compatíveis com as APIs?

As APIs dão suporte aos seguintes tipos de implantação:

  • Implantar tudo – uma chamada individual à API que implanta todo o conteúdo no workspace para o próximo estágio no pipeline. Para essa operação, use a API Implantar tudo.

  • Implantação seletiva – Implanta somente itens específicos, como relatórios ou painéis no pipeline. Para essa operação, use a API Implantação seletiva.

  • Implantação retroativa – Implanta novos itens no estágio anterior. A implantação retroativa só funcionará se os itens que tiverem sido implantados ainda não existirem no estágio de destino. Para essa operação, use as APIs Implantar tudo ou Implantação seletiva, com isBackwardDeployment definido para True.

  • Atualizar Aplicativo – como parte da chamada à API de implantação, você pode atualizar o conteúdo do aplicativo relacionado a esse estágio. Os itens atualizados ficam disponíveis automaticamente para os usuários finais após a conclusão de uma implantação. Para essa operação, use uma das APIs Implantar tudo e Implantação seletiva, com PipelineUpdateAppSettings.

Antes de começar

Antes de usar as APIs de pipelines de implantação, verifique se você tem o seguinte:

Integrar o pipeline ao Azure DevOps

Para automatizar os processos de implantação de dentro do seu pipeline de lançamento no Azure DevOps, você pode usar um destes métodos:

  • PowerShell – O script entra no Fabric usando uma entidade de serviço ou um usuário.

  • Ferramentas de automação do Power BI – essa extensão funciona com uma entidade de serviço ou um usuário.

Você também pode usar outras chamadas à API REST do Power BI para concluir operações relacionadas, como importar um .pbix para o pipeline e atualizar fontes de dados e parâmetros.

Usar a extensão de ferramentas de automação do Power BI

A extensão de ferramentas de automação do Power BI são uma extensão em código aberto do Azure DevOps que fornece uma variedade de operações de pipelines de implantação que podem ser executadas no Azure DevOps. A extensão elimina a necessidade de usar APIs ou scripts para gerenciar pipelines. Cada operação pode ser usada individualmente para executar uma tarefa, como a criação de um pipeline. As operações podem ser usadas em conjunto em um pipeline do Azure DevOps para criar um cenário mais complexo, como criar um pipeline, atribuir um espaço de trabalho ao pipeline, adicionar usuários e fazer implantações.

Depois de adicionar a extensão de ferramentas de automação do Power BI ao DevOps, você precisará criar uma conexão de serviço. As seguintes conexões estão disponíveis:

  • Entidade de serviço (recomendada) – essa conexão é autenticada usando uma entidade de serviço e requer o segredo do aplicativo do Microsoft Entra e a ID do aplicativo. Ao usar essa opção, verifique se as configurações de administração da entidade de serviço estão habilitadas.

  • Nome de usuário e senha – Configurado como uma conexão de serviço genérica com um nome de usuário e uma senha. Esse método de conexão não dá suporte à autenticação multifator. Nós recomendamos que você use o método de conexão da entidade de serviço, pois ele não requer o armazenamento de credenciais do usuário no Azure DevOps.

Observação

A extensão de ferramentas de automação do Power BI usa uma conexão de serviço do Azure DevOps para armazenar credenciais. Para obter mais informações, consulte Como armazenamos suas credenciais para os serviços do Azure DevOps.

Depois de habilitar uma conexão de serviço para suas ferramentas de automação do Power BI do Azure DevOps, você poderá criar tarefas de pipeline. A extensão inclui as seguintes tarefas de pipelines de implantação:

  • Criar um novo pipeline

  • Atribuir um workspace a um estágio do pipeline

  • Adicionar um usuário a um pipeline de implantação

  • Adicionar um usuário a um workspace

  • Implantar conteúdo em um pipeline de implantação

  • Remover um workspace de um pipeline de implantação

  • Excluir um pipeline

Acessar os exemplos do PowerShell

Você pode usar os scripts do PowerShell a seguir para entender como executar vários processos de automação. Para exibir ou copiar o texto em um exemplo do PowerShell, use os links desta seção.

Você também pode baixar toda a pasta PowerBI-Developer-Samples do GitHub.

Exemplo de PowerShell

Esta seção descreve um exemplo de script do PowerShell que implanta um modelo semântico, um relatório e um painel, desde a fase de desenvolvimento até a fase de testes. Em seguida, o script verifica se a implantação foi bem-sucedida.

Para executar um script do PowerShell que realiza uma implantação, você precisará dos seguintes componentes. Você pode adicionar qualquer uma dessas partes em tarefas em seus estágios de pipeline do Azure.

  1. Entrar – Antes que possa implantar seu conteúdo, você precisa entrar no Fabric usando uma entidade de serviço ou um usuário. Use o comando Connect-PowerBIServiceAccount para entrar.

  2. Criar o corpo da solicitação – Nesta parte do script, você especifica quais itens (como relatórios e painéis) você está implantando.

    $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. Implantar – aqui você executa a implantação.

    $url = "pipelines/{0}/Deploy" -f "Insert you pipeline ID here"
    $deployResult = Invoke-PowerBIRestMethod -Url $url  -Method Post -Body $body | ConvertFrom-Json
    
  4. (Opcional) Notificação de conclusão da implantação – como a API de implantação é assíncrona, você pode programar o script para que lhe notifique quando a implantação for concluída.

    $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
    }
    

Considerações e limitações

  • A implantação usando APIs está sujeita às mesmas limitações que a interface do usuário dos pipelines de implantação.

  • Uma entidade de serviço não pode configurar credenciais OAuth. Após implantar novos itens, a entidade de serviço conectado se torna o proprietário de todos os relatórios paginados implantados e modelos semânticos. Nesses casos, uma atualização não pode ser concluída.

  • Não há suporte para implantação de fluxos de dados usando uma entidade de serviço.

  • O número máximo de itens que podem ser implantados em uma única implantação é 300.

  • Atualmente, as APIs dos pipelines de implantação só funcionam com os itens do Power BI.

  • Atualmente, a criação de um pipeline personalizado de 2 a 10 fases é suportada apenas pela interface do usuário.