Partilhar via


Automatizar a integração contínua mediante a utilização das versões dos Pipelines do Azure

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

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

A seguir está um guia para configurar uma versão do Azure Pipelines que automatiza a implantação de uma fábrica de dados em vários ambientes.

Requisitos

  • Uma assinatura do Azure vinculada ao Servidor de DevOps do Azure (anteriormente Visual Studio Team Foundation Server) ou ao Azure Repos que usa o ponto de extremidade de serviço do Azure Resource Manager.

  • Uma fábrica de dados configurada com a integração do Azure Repos Git.

  • Um cofre de chaves do Azure que contém os segredos para cada ambiente.

Configurar uma versão do Azure Pipelines

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

  2. No lado esquerdo da página, selecione Pipelines e, em seguida, selecione Releases.

    Selecionar pipelines, versões

  3. Selecione Novo pipeline ou, se você tiver pipelines existentes, selecione Novo e, em seguida, Novo pipeline de versão.

  4. Selecione o modelo de trabalho vazio.

    Selecionar Tarefa vazia

  5. Na caixa Nome do palco , digite o nome do seu ambiente.

  6. Selecione Adicionar artefato e, em seguida, selecione o repositório git configurado com seu data factory de desenvolvimento. Selecione a ramificação de publicação do repositório para a ramificação Padrão. Por padrão, essa ramificação de publicação é adf_publish. Para a versão padrão, selecione Mais recente na ramificação padrão.

    Adicionar um artefacto

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

    1. Na vista de palco, selecione Ver tarefas de palco.

      Vista de palco

    2. Crie uma nova tarefa. Procure por Implantação de modelo ARM e selecione Adicionar.

    3. Na tarefa Implantação, selecione a assinatura, o grupo de recursos e o local do data factory de destino. Forneça credenciais, se necessário.

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

    5. Selecione o botão de reticências (...) ao lado da caixa Modelo . Procure o modelo do Azure Resource Manager que é gerado em sua ramificação de publicação do repositório git configurado. Procure o <arquivo ARMTemplateForFactory.json na pasta FactoryName> da ramificação adf_publish. Para obter mais detalhes sobre como usar modelos ARM vinculados, consulte Implantando modelos ARM vinculados com VSTS e Usando modelos vinculados.

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

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

    8. Selecione Incremental para o modo de implantação.

      Aviso

      No modo de implantação Completa, os recursos que existem no grupo de recursos, mas não são especificados no novo modelo do Gerenciador de Recursos, serão excluídos. Para obter mais informações, consulte Modos de implantação do Azure Resource Manager

      Implantação do Data Factory Prod

  8. Salve o pipeline de liberação.

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

    Selecione Criar versão

Importante

Em cenários de CI/CD, o tipo de tempo de execução de integração (IR) 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 deve ser do tipo auto-hospedado em outros ambientes, como teste e produção. Da mesma forma, se você estiver compartilhando tempos de execução de integração em vários estágios, precisará configurá-los 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 que use o Azure Key Vault com a versão Azure Pipelines.

Há duas maneiras de lidar com segredos:

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

    Crie uma cópia do arquivo de parâmetros que é carregado na ramificação de publicação. Defina os valores dos parâmetros que você deseja obter do Cofre da Chave 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 precisa estar na ramificação de publicação.

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

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

    2. Na tarefa Cofre da chave, selecione a assinatura na qual você criou o cofre da chave. Forneça credenciais, se necessário, e selecione o cofre de chaves.

    Adicionar uma tarefa do Cofre da Chave

Conceder permissões ao agente do Azure Pipelines

A tarefa Cofre da Chave do Azure pode 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. Ou você pode copiar a ID principal 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.

Atualizando gatilhos ativos

Instale os módulos do Azure PowerShell mais recentes ao seguir as instruções em How to install and configure Azure PowerShell (Como instalar e configurar o Azure PowerShell).

Aviso

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

A implantação pode falhar se você tentar atualizar gatilhos ativos. Para atualizar gatilhos ativos, você precisa pará-los manualmente e reiniciá-los após a implantação. Você pode fazer 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 sua fábrica está.

  3. Selecione Caminho do arquivo de script como o tipo de script. Isso requer que você salve o script do PowerShell em seu repositório. O seguinte script do PowerShell pode ser usado para interromper 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 Start-AzDataFactoryV2Trigger função) para reiniciar os gatilhos após a implantação.

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

Nota

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

Aviso

Certifique-se de usar o PowerShell Core na tarefa ADO para executar o script