Automatizar a integração contínua usando versões do Azure Pipelines

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

A seguir há um guia para configurar uma versão do Azure Pipelines que automatiza a implantação de um data factory em vários ambientes.

Requisitos

Configurar um lançamento do Azure Pipelines

  1. Em Azure DevOps, abra o projeto configurado com seu data factory.

  2. No lado esquerdo da página, selecione Pipelines e, em seguida, selecione Versões.

    Select Pipelines, Releases

  3. Selecione Novo pipeline ou, se tiver pipelines existentes, selecione Novo e, em seguida, Novo pipeline de lançamento.

  4. Selecione o modelo Trabalho vazio.

    Select Empty job

  5. Na caixa Nome da fase, insira o nome do seu ambiente.

  6. Selecione Adicionar artefato e, em seguida, selecione o repositório do git configurado com seu data factory de desenvolvimento. Selecione o branch de publicação do repositório para o Branch padrão. Por padrão, esse branch de publicação é adf_publish. Para a Versão padrão, selecione Mais recente do branch padrão.

    Add an artifact

  7. Adicione uma tarefa de Implantação do Azure Resource Manager:

    a. No modo de exibição de fase, selecione Exibir tarefas da fase.

    Stage view

    b. Crie uma tarefa. Pesquise Implantação de Modelo do ARM e Adicionar.

    c. Na Tarefa de implantação, selecione a assinatura, o grupo de recursos e a localização do data factory de destino. Forneça as credenciais, se necessário.

    d. Na lista Ação, selecione Criar ou atualizar grupo de recursos.

    e. Selecione o botão de reticências ( ) ao lado da caixa Modelo. Procure o modelo do Azure Resource Manager gerado no branch de publicação do repositório do git configurado. Procure o arquivo ARMTemplateForFactory.json na pasta <FactoryName> do branch adf_publish.

    f. Selecione ao lado da caixa Parâmetros do modelo para escolher o arquivo de parâmetros. Procure o arquivo ARMTemplateParametersForFactory.json na pasta >FactoryName< do branch adf_publish.

    g. Selecione ao lado da caixa Substituir parâmetros de modelo e insira os valores de parâmetro desejados para o data factory de destino. Para as credenciais provenientes do Azure Key Vault, insira o nome do segredo entre aspas duplas. Por exemplo, se o nome do segredo for cred1, insira "$(cred1)" para esse valor.

    h. Selecione Incremental para o Modo de implantação.

    Aviso

    No modo de implantação completa, os recursos que estão no grupo de recursos, mas não estão especificados no novo modelo do Resource Manager, serão excluídos. Para obter mais informações, confira Modos de implantação do Azure Resource Manager

    Data Factory Prod Deployment

  8. Salve o pipeline de lançamento.

  9. Para disparar uma versão, selecione Criar versão. Para automatizar a criação de versões, confira Gatilhos de versão do Azure DevOps

    Select Create release

Importante

Em cenários de CI/CD, o tipo de IR (runtime de integração) em ambientes diferentes deve ser o mesmo. Por exemplo, se você tiver um IR auto-hospedado no ambiente de desenvolvimento, o mesmo IR também deverá ser do tipo auto-hospedado em outros ambientes, como teste e produção. Da mesma forma, se você estiver compartilhando runtimes de integração em várias fases, será necessário configurar os runtimes de integração como auto-hospedados vinculados em todos os ambientes, como desenvolvimento, teste e produção.

Obter segredos do Azure Key Vault

Se você tiver segredos para passar em um modelo do Azure Resource Manager, recomendamos o uso do Azure Key Vault com a versão do Azure Pipelines.

Há duas maneiras de lidar cos segredos:

  • Adicione os segredos ao arquivo de parâmetros. Para obter mais informações, consulte Usar o Azure Key Vault para passar um valor de parâmetro seguro durante a implantação.

    Crie uma cópia do arquivo de parâmetros carregado para o branch de publicação. Defina os valores dos parâmetros que você deseja obter do Key Vault usando este formato:

    {
        "parameters": {
            "azureSqlReportingDbPassword": {
                "reference": {
                    "keyVault": {
                        "id": "/subscriptions/<subId>/resourceGroups/<resourcegroupId> /providers/Microsoft.KeyVault/vaults/<vault-name> "
                    },
                    "secretName": " < secret - name > "
                }
            }
        }
    }
    

    Quando você usa esse método, o segredo é extraído do cofre de chaves automaticamente.

    O arquivo de parâmetros também deve estar no branch de publicação.

  • Adicione uma tarefa do Azure Key Vault antes da tarefa de Implantação do Azure Resource Manager descrita na seção anterior:

    1. Na guia Tarefas, crie uma tarefa. Procure Azure Key Vault e adicione-o.

    2. Na tarefa do Key Vault, selecione a assinatura na qual você criou o cofre de chaves. Forneça as credenciais, se necessário, e selecione o cofre de chaves.

    Add a Key Vault task

Conceder permissões ao agente do Azure Pipelines

A tarefa do Azure Key Vault poderá falhar com um erro de Acesso Negado se as permissões corretas não estiverem definidas. Baixe os logs da versão e localize o arquivo .ps1 que contém o comando para conceder permissões ao agente do Azure Pipelines. Você pode executar o comando diretamente. Como alternativa, você pode copiar a ID de entidade de segurança do arquivo e adicionar a política de acesso manualmente no portal do Azure. Get e List são as permissões mínimas necessárias.

Atualizar gatilhos ativos

Instale os módulos mais recentes do Azure PowerShell seguindo as instruções em Como instalar e configurar o Azure PowerShell.

Aviso

Se você não usar as versões mais recentes do PowerShell e o módulo do Data Factory, poderá encontrar erros de desserialização ao executar os comandos.

A implantação poderá falhar se você tentar atualizar gatilhos ativos. Para atualizar os gatilhos ativos, você precisa interrompê-los manualmente e iniciá-los após a implantação. Faça isso usando uma tarefa do Azure PowerShell:

  1. Na guia Tarefas da versão, adicione uma tarefa do Azure PowerShell. Escolha a versão da tarefa a versão mais recente do Azure PowerShell.

  2. Selecione a assinatura em que seu factory está.

  3. Selecione Caminho do Arquivo de Script como o tipo de script. Isso exige que você salve o script do PowerShell em seu repositório. O seguinte script do PowerShell pode ser usado para parar gatilhos:

    $triggersADF = Get-AzDataFactoryV2Trigger -DataFactoryName $DataFactoryName -ResourceGroupName $ResourceGroupName
    
    $triggersADF | ForEach-Object { Stop-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $_.name -Force }
    

Você pode concluir etapas semelhantes (com a função Start-AzDataFactoryV2Trigger) para reiniciar os gatilhos depois da implantação.

A equipe do data factory forneceu um script pré e pós-implantação de exemplo.

Observação

Use o PrePostDeploymentScript.Ver2.ps1 se você quiser ativar/desativar somente os gatilhos que foram modificados em vez de ativar/desativar todos os gatilhos durante a CI/CD.

Aviso

Use o Núcleo PowerShell na tarefa ADO para executar o script