Automatize seu pipeline de implantação usando APIs e Azure DevOps

A ferramenta de pipelines de implantação do Microsoft Fabric permite que as equipes de business intelligence criem um processo de liberação eficiente e reutilizável para seu conteúdo de malha.

Para obter integração contínua e entrega contínua (CI/CD) 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 de ferramentas de automação do Power BI, que dá suporte a muitas das operações de API de pipelines de implantação.

Você pode usar os pipelines de implantação das APIs REST 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:

  • Gerencie 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.

  • Atribua e cancele a atribuição de usuários de e para um pipeline.

  • Integre o Fabric em ferramentas familiares de DevOps, como Azure DevOps ou GitHub Actions.

  • Agende implantações de pipeline para acontecer automaticamente em um horário específico.

  • Implante 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 da API de pipelines de implantação

Nota

Atualmente, as APIs de pipelines de implantação só funcionam para 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 suportadas pelas APIs?

As APIs suportam os seguintes tipos de implantação:

  • Implantar tudo - Uma única chamada de API que implanta todo o conteúdo no espaço de trabalho para o próximo estágio no pipeline. Para esta operação, use a opção Implantar toda a API.

  • Implantação seletiva - Implanta apenas itens específicos, como relatórios ou painéis, no pipeline. Para esta operação, use a API de implantação seletiva.

  • Retroimplantação - Implanta novos itens no estágio anterior. A implantação retroativa só funciona se os itens implantados ainda não existirem no estágio de destino. Para esta operação, use as APIs Deploy all ou Selective deploy , com isBackwardDeployment definido como True.

  • Atualizar aplicativo - Como parte da chamada da API de implantação, você pode atualizar o conteúdo do aplicativo relacionado a esse estágio. Os itens atualizados ficam automaticamente disponíveis para os usuários finais, após a conclusão de uma implantação. Para esta operação, use as APIs Deploy all ou Selective deploy , com PipelineUpdateAppSettings.

Antes de começar

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

Integre seu pipeline com o Azure DevOps

Para automatizar os processos de implantação de dentro do seu pipeline de liberação no Azure DevOps, use 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 - Esta extensão funciona com uma entidade de serviço ou um usuário.

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

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

A extensão das ferramentas de automação do Power BI é uma extensão de DevOps do Azure de código aberto 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 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 juntas em um pipeline de DevOps do Azure para criar um cenário mais complexo, como criar um pipeline, atribuir um espaço de trabalho ao pipeline, adicionar usuários e implantar.

Depois de adicionar a extensão das ferramentas de automação do Power BI ao DevOps, você precisa criar uma conexão de serviço. Estão disponíveis as seguintes ligações:

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

  • Nome de usuário e senha – Configurado como uma conexão de serviço genérico com um nome de usuário e uma senha. Este método de conexão não suporta autenticação multifator. Recomendamos que você use o método de conexão da entidade de serviço porque ele não requer o armazenamento de credenciais de usuário no Azure DevOps.

Nota

A extensão das 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 de DevOps do Azure.

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

  • Criar um novo pipeline

  • Atribuir um espaço de trabalho a um estágio de pipeline

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

  • Adicionar um usuário a um espaço de trabalho

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

  • Remover um espaço de trabalho de um pipeline de implantação

  • Excluir um pipeline

Acessar os exemplos do PowerShell

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

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

Exemplo do PowerShell

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

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

  1. Entrar - Antes de 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) 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 notificá-lo 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 da interface do usuário dos pipelines de implantação.

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

  • Não há suporte para a 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 de pipeline de implantação oferecem suporte apenas a itens do Power BI.

  • Atualmente, a criação de um pipeline personalizado de 2 a 10 estágios é suportada apenas por meio da interface do usuário.