Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APLICA-SE A:
Azure Data Factory
Azure Synapse Analytics
Dica
Data Factory no Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA interna e novos recursos. Se você não estiver familiarizado com a integração de dados, comece com Fabric Data Factory. As cargas de trabalho existentes do ADF podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.
Observação
O Synapse Analytics também dá suporte à CI/CD. Veja a documentação de CI/CD do Synapse Analytics para obter mais informações.
Visão geral
Integração contínua é a prática de testar cada alteração feita em sua base de código automaticamente. O quanto antes possível, a entrega contínua segue o teste que acontece durante a integração contínua e envia as alterações para um sistema de preparo ou produção.
No Azure Data Factory, CI/CD significa mover os pipelines do Data Factory de um ambiente, como desenvolvimento, teste e produção, para outro. O Data Factory usa modelos Azure Resource Manager (Modelos ARM) para armazenar a configuração de entidades do Data Factory, como pipelines, conjuntos de dados e fluxos de dados.
Há dois métodos sugeridos para promover um Data Factory para outro ambiente:
- Implantação automatizada utilizando a integração do Data Factory com o Azure Pipelines.
- Carregando manualmente um modelo ARM usando a integração da experiência do usuário do Data Factory com o Azure Resource Manager.
Para obter mais informações, consulte A integração e entrega contínuas no Azure Data Factory.
Este artigo se concentra nas melhorias de implantação contínua e no recurso de publicação automatizada para CI/CD.
Melhorias de implantação contínua
O recurso de publicação automatizada utiliza os recursos de Validar tudo e Exportar modelo ARM da interface do usuário do Data Factory e disponibiliza a lógica por meio de um pacote npm publicamente disponível @microsoft/azure-data-factory-utilities. Por esse motivo, você pode disparar programaticamente essas ações em vez de ter que ir para a interface do usuário do Data Factory e selecionar um botão manualmente. Essa capacidade proporciona aos seus pipelines CI/CD uma experiência de integração contínua mais verdadeira.
Observação
Certifique-se de usar Node.js versão 20.x e sua versão compatível para evitar erros que possam ocorrer devido à incompatibilidade de pacotes com versões anteriores.
Fluxo de CI/CD atual
- Cada usuário faz alterações em suas ramificações privadas.
- Empurrar para o main não é permitido. Os usuários devem criar uma solicitação de pull para fazer alterações.
- Os usuários devem carregar a interface do usuário do Data Factory e selecionar Publicar para implantar alterações no Data Factory e gerar os modelos do ARM na ramificação de publicação.
- O pipeline de lançamento do DevOps é configurado para criar uma nova versão e implantar o modelo do ARM sempre que uma nova alteração é enviada por push para o branch de publicação.
Etapa manual
No fluxo de CI/CD atual, a experiência do usuário é o intermediário para criar o modelo do ARM. Como resultado, um usuário deve ir para a interface do usuário do Data Factory e selecionar manualmente Publicar para iniciar a geração do modelo ARM e soltá-lo na ramificação de publicação.
O novo fluxo de CI/CD
- Cada usuário faz alterações em suas ramificações privadas.
- Empurrar para o main não é permitido. Os usuários devem criar uma solicitação de pull para fazer alterações.
- A build do pipeline Azure DevOps é acionada toda vez que um novo commit é feito no main. Ele validará os recursos e gerará um modelo de ARM como um artefato se a validação for realizada com sucesso.
- O pipeline de liberação do DevOps é configurado para criar uma nova versão e implantar o modelo ARM sempre que uma nova build estiver disponível.
O que mudou?
- Agora você tem um processo de build que usa um pipeline de build DevOps.
- O pipeline de build utiliza o pacote ADFUtilities (
@microsoft/azure-data-factory-utilities) npm, que valida todos os recursos e gera os templates ARM. Esses modelos podem ser únicos e vinculados. - O pipeline de build valida os recursos do Data Factory e gera o template ARM em vez da interface do Data Factory (botão Publicar ).
- A definição de lançamento do DevOps agora consome esse novo pipeline de build em vez do artefato Git.
Observação
Você pode continuar usando o mecanismo existente, que é o branch adf_publish, ou pode optar pelo novo fluxo. Ambos têm suporte.
Visão geral do pacote
Dois comandos estão disponíveis no momento no pacote:
- Exportar modelo ARM
- Validar
Exportar modelo ARM
Execute npm run build export <rootFolder> <factoryId> [outputFolder] para exportar o modelo ARM usando os recursos de uma determinada pasta. Esse comando também executa uma verificação de validação antes de gerar o template ARM. Aqui está um exemplo que usa um grupo de recursos chamado testResourceGroup:
npm run build export C:\DataFactories\DevDataFactory /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.DataFactory/factories/DevDataFactory ArmTemplateOutput
-
RootFolderé um campo obrigatório que representa onde os recursos de Data Factory estão localizados. -
FactoryIdé um campo obrigatório que representa a ID do recurso do Data Factory no formato/subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.DataFactory/factories/<dfName>. -
OutputFolderé um parâmetro opcional que especifica o caminho relativo para salvar o modelo ARM gerado.
A capacidade de parar/iniciar apenas os gatilhos atualizados agora está geralmente disponível e está integrada ao comando anterior.
Observação
O modelo ARM gerado não está publicado na versão ativa da fábrica. A implantação deve ser feita usando um pipeline de CI/CD.
Validar
Execute npm run build validate <rootFolder> <factoryId> para validar todos os recursos de uma determinada pasta. Veja um exemplo:
npm run build validate C:\DataFactories\DevDataFactory /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.DataFactory/factories/DevDataFactory
-
RootFolderé um campo obrigatório que representa onde os recursos de Data Factory estão localizados. -
FactoryIdé um campo obrigatório que representa a ID do recurso do Data Factory no formato/subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.DataFactory/factories/<dfName>.
Criar um pipeline do Azure
Embora os pacotes npm possam ser consumidos de várias maneiras, um dos principais benefícios é ser consumido por meio do Azure Pipelines. Em cada merge no seu branch de colaboração, um pipeline pode ser acionado que primeiro valida todo o código e depois exporta o template ARM para um artefato de build que pode ser consumido por um pipeline de release. A diferença do processo atual de CI/CD é que você vai apontar seu pipeline de lançamento para esse artefato em vez do branch existenteadf_publish.
Siga estas etapas para começar:
Abra um projeto de Azure DevOps e vá para Pipelines. Selecione Novo Pipeline.
Selecione o repositório no qual você deseja salvar o script YAML do pipeline. Salve em uma pasta de build no mesmo repositório dos recursos do seu Data Factory. Verifique se há um arquivo package.json no repositório que contém o nome do pacote, conforme mostrado no exemplo a seguir:
{ "scripts":{ "build":"node node_modules/@microsoft/azure-data-factory-utilities/lib/index" }, "dependencies":{ "@microsoft/azure-data-factory-utilities":"^1.0.0" } }Selecione Pipeline de inicialização. Se você carregou ou mesclou o arquivo YAML, conforme mostrado no exemplo a seguir, você também pode apontar diretamente para ele e editá-lo.
# Sample YAML file to validate and export an ARM template into a build artifact # Requires a package.json file located in the target repository trigger: - main #collaboration branch pool: vmImage: 'ubuntu-latest' steps: # Installs Node and the npm packages saved in your package.json file in the build - task: UseNode@1 inputs: version: '20.x' displayName: 'Install Node.js' - task: Npm@1 inputs: command: 'install' workingDir: '$(Build.Repository.LocalPath)/<folder-of-the-package.json-file>' #replace with the package.json folder verbose: true displayName: 'Install npm package' # Validates all of the Data Factory resources in the repository. You'll get the same validation errors as when "Validate All" is selected. # Enter the appropriate subscription and name for the source factory. Either of the "Validate" or "Validate and Generate ARM template" options are required to perform validation. Running both is unnecessary. - task: Npm@1 inputs: command: 'custom' workingDir: '$(Build.Repository.LocalPath)/<folder-of-the-package.json-file>' #replace with the package.json folder customCommand: 'run build validate $(Build.Repository.LocalPath)/<Root-folder-from-Git-configuration-settings-in-ADF> /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/<Your-ResourceGroup-Name>/providers/Microsoft.DataFactory/factories/<Your-Factory-Name>' displayName: 'Validate' # Validate and then generate the ARM template into the destination folder, which is the same as selecting "Publish" from the UX. # The ARM template generated isn't published to the live version of the factory. Deployment should be done by using a CI/CD pipeline. - task: Npm@1 inputs: command: 'custom' workingDir: '$(Build.Repository.LocalPath)/<folder-of-the-package.json-file>' #replace with the package.json folder customCommand: 'run build export $(Build.Repository.LocalPath)/<Root-folder-from-Git-configuration-settings-in-ADF> /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/<Your-ResourceGroup-Name>/providers/Microsoft.DataFactory/factories/<Your-Factory-Name> "ArmTemplate"' #For using preview that allows you to only stop/ start triggers that are modified, please comment out the above line and uncomment the below line. Make sure the package.json contains the build-preview command. #customCommand: 'run build-preview export $(Build.Repository.LocalPath) /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/GartnerMQ2021/providers/Microsoft.DataFactory/factories/Dev-GartnerMQ2021-DataFactory "ArmTemplate"' displayName: 'Validate and Generate ARM template' # Publish the artifact to be used as a source for a release pipeline. - task: PublishPipelineArtifact@1 inputs: targetPath: '$(Build.Repository.LocalPath)/<folder-of-the-package.json-file>/ArmTemplate' #replace with the package.json folder artifact: 'ArmTemplates' publishLocation: 'pipeline'Insira seu código YAML. Use o arquivo YAML como ponto de partida.
Salvar e executar. Se você usou o YAML, ele será disparado toda vez que o branch principal for atualizado. Confirme que a execução foi bem-sucedida e gera o
ArmTemplatesartefato nos artefatos publicados no pipeline.
Observação
Os artefatos gerados já contêm scripts pré e pós-implantação para os gatilhos, então você não precisa adicioná-los manualmente. No entanto, ao implantar, ainda precisa consultar a documentação sobre parar e iniciar gatilhos para executar o script fornecido.
Conteúdo relacionado
Saiba mais sobre integração contínua e entrega no Data Factory: Integração e entrega contínua no Azure Data Factory.