Implante um trabalho do AWS Glue com um pipeline de CodePipeline CI/CD da AWS - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Implante um trabalho do AWS Glue com um pipeline de CodePipeline CI/CD da AWS

Criado por Bruno Klein (AWS) e Luis Henrique Massao Yamada (AWS)

Ambiente: produção

Tecnologias: DevOps; Big data

Serviços da AWS: AWS Glue; AWS CodeCommit; AWS CodePipeline; AWS Lambda

Resumo

Esse padrão demonstra como você pode integrar a Amazon Web Services (AWS) CodeCommit e a AWS CodePipeline com o AWS Glue e usar o AWS Lambda para iniciar trabalhos assim que um desenvolvedor envia suas alterações para um repositório remoto da AWS. CodeCommit  

Quando um desenvolvedor envia uma alteração para um repositório de extração, transformação e carregamento (ETL) e envia as alterações para a AWS CodeCommit, um novo pipeline é invocado. O pipeline inicia uma função do Lambda que inicia um trabalho do AWS Glue com essas alterações. O trabalho do AWS Glue executa a tarefa de ETL.

Essa solução é útil na situação em que empresas, desenvolvedores e engenheiros de dados desejam iniciar tarefas assim que as alterações forem confirmadas e enviadas aos repositórios de destino. Isso ajuda a alcançar um nível mais alto de automação e reprodutibilidade, evitando erros durante o lançamento e o ciclo de vida do trabalho.

Pré-requisitos e limitações

Pré-requisitos

Limitações

  • O pipeline é concluído assim que o trabalho do AWS Glue for lançado com sucesso. Ele não vai esperar chegar ao fim do trabalho.

  • O código fornecido no anexo é destinado apenas para fins de demonstração.

Arquitetura

Pilha de tecnologias de destino

  • AWS Glue

  • AWS Lambda

  • AWS CodePipeline

  • AWS CodeCommit

Arquitetura de destino

Usar o Lambda para iniciar uma tarefa do Glue assim que um desenvolvedor envia as alterações para um repositório. CodeCommit

O processo consiste nestas etapas:

  1. O desenvolvedor ou engenheiro de dados faz uma modificação no código ETL, confirma e envia a alteração para a AWS. CodeCommit

  2. O push inicia o pipeline.

  3. O pipeline inicia uma função do Lambda, que chama codecommit:GetFile no repositório e faz upload do arquivo para o Amazon Simple Storage Service (Amazon S3).

  4. A função do Lambda lança um novo trabalho do AWS Glue com o código ETL.

  5. A função do Lambda finaliza o pipeline.

Automação e escala

O exemplo de anexo demonstra como você pode integrar o AWS Glue com a AWS CodePipeline. Ele fornece um exemplo básico que você pode personalizar ou estender para seu próprio uso. Consulte a seção Épicos  para obter detalhes.

Ferramentas

  • AWS CodePipeline — CodePipeline A AWS é um serviço de entrega contínua totalmente gerenciado que ajuda você a automatizar seus pipelines de lançamento para atualizações rápidas e confiáveis de aplicativos e infraestrutura.

  • AWS CodeCommit — CodeCommit A AWS é um serviço de controle de origem totalmente gerenciado que hospeda repositórios seguros baseados em Git.

  • AWS Lambda: o AWS Lambda é um serviço de computação com tecnologia sem servidor que pode ser usado para executar código sem provisionamento ou gerenciamento de servidores.

  • AWS Glue: o AWS Glue é um serviço de integração de dados com tecnologia sem servidor que facilita a descoberta, preparação e combinação de dados para análise, machine learning e desenvolvimento de aplicações.

  • Cliente Git — O Git fornece ferramentas de GUI, ou você pode usar a linha de comando ou uma ferramenta de desktop para verificar os artefatos necessários. GitHub 

  • CDK da AWS: o CDK da AWS é um framework de desenvolvimento de software de código aberto que ajuda a definir recursos de aplicativos em nuvem usando linguagens de programação familiares.

Épicos

TarefaDescriçãoHabilidades necessárias

Configure a AWS CLI.

Configure a AWS Command Line Interface (AWS CLI) para direcionar e autenticar com sua conta da AWS atual. Para obter instruções, consulte a documentação da AWS CLI.

Desenvolvedor, DevOps engenheiro

Extraia os arquivos de exemplo do projeto.

Extraia os arquivos do anexo para criar uma pasta que contém os arquivos de exemplo do projeto.

Desenvolvedor, DevOps engenheiro

Implantar o código de exemplo.

Depois de extrair os arquivos, execute os seguintes comandos no local da extração para criar um exemplo básico:

cdk bootstrap cdk deploy git init git remote add origin <code-commit-repository-url> git stage . git commit -m "adds sample code" git push --set-upstream origin main

Depois do último comando, é possível monitorar o status do pipeline e do trabalho do AWS Glue.

Desenvolvedor, DevOps engenheiro

Personalize o código.

Personalize o código do arquivo etl.py de acordo com seus requisitos comerciais. Você pode revisar o código ETL, modificar os estágios do pipeline ou estender a solução.

Engenheiro de dados

Recursos relacionados

Anexos

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip