Skip to content

lamiautfpr/STC-2024-01-DataEngineeringAWS-DataProcess

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


LAMIA - Laboratório de                  Aprendizagem de Máquina e Imagens Aplicados à Indústria

Pipeline AWS com Docker e Lambda

Lab

Equipe:
Thiago Naves (Naves, T. F.) - Coordenador
Erik Henrique dos Santos Nascimento (Nascimento, E. H. S.) - Membro
Felipe Lapa Nascimento (Felipe, L. N.) - Gerente

Grupo: LAMIA - Laboratório de Aprendizado de Máquina e Imagens Aplicados à Indústria
Email: [email protected]
Organização: Universidade Tecnológica Federal do Paraná - Campus Santa Helena


Status do Projeto: Em fase de teste ⚠️

Resumo

Este repositório contém o código e as instruções para configurar e executar um pipeline simples na AWS, utilizando Python, Docker, AWS Lambda, e AWS S3. O objetivo desta prática é permitir que você aprenda a integrar diferentes serviços da AWS para automatizar o processamento de dados.

Visão Geral

Pipeline Overview

Componentes do Pipeline

  1. Data Sources: Fonte dos arquivos que serão processados.
  2. Amazon S3: Armazenamento de arquivos que ativará o pipeline.
  3. AWS Lambda: Função que processará os arquivos.
  4. Docker: Imagem Docker usada para rodar o código na Lambda.
  5. Amazon ECR: Repositório para armazenar a imagem Docker.
  6. Buckets DL e DW: Buckets de destino no S3 para armazenamento dos dados processados.

Pré-requisitos / Tecnologias

Antes de começar, certifique-se de ter as seguintes ferramentas instaladas e configuradas no seu computador:

  • Git: Para clonar este repositório.
  • Docker: Para construir e rodar a imagem Docker.
  • AWS CLI: Para interagir com os serviços da AWS.
  • PyCharm (ou outro editor de código): Para editar e gerenciar o código.
  • Conta AWS: Acesse a conta AWS fornecida ou crie a sua própria.

Passo a Passo

1. Clonar o Repositório

Primeiro, clone este repositório para o seu computador:

git clone https://github.com/seu-usuario/nome-do-repo.git  
cd nome-do-repo

2. Construir a Imagem Docker

Em seguida, construa a imagem Docker que será usada na função Lambda:

docker build -t nome-da-imagem .

3. Configurar o AWS CLI

para interagir com a AWS via linha de comandos precisamos utilizar a CLI ( Command Line Interface ) disponibilizada pela propria AWS

aws configure

4. Fazer o Push da Imagem para o ECR

Agora, faça o push da imagem Docker para o Amazon ECR (São varios passos, então sumarizamos com um Makefile :

  1. Autentique o Docker no ECR:
  2. Crie o repositório no ECR:
  3. Marque a imagem e faça o push para o ECR:
make ecr

5. Configurar a Função Lambda

  1. Alterar a Função Lambda do seu usuario:

    • No console da AWS, vá para o serviço Lambda.
    • Em “Funções” selecione a lambda com seu nome de usuário
    • Abra a seção "imagem" e escolha "implantar nova imagem".
    • Selecione a imagem que você acabou de fazer o push para o ECR.
  2. Configurar o Trigger:

    • Clique em “Adicionar gatilho”
    • Adicione um trigger do tipo S3 para ativar a Lambda quando um arquivo for carregado em um bucket específico.
    • Preencha as informações
      • Bucket: data-engineering-setac
      • Tipos de evento: marque o evento “PUT” apenas
      • Prefixo: seu_username/datalake/lol_
      • Sufixo: .parquet
    • Assinale a caixinha de reconhecimento do risco das funções recursivas
    • Finalize a criação

5. Testar o Pipeline

  1. Faça o upload de um arquivo de teste no bucket S3 configurado.
  2. Verifique se a função Lambda foi acionada e processou o arquivo corretamente.
  3. Confira o arquivo processado no bucket de destino (DL ou DW).

Conclusão

Este pipeline demonstra como integrar Docker, Lambda e S3 na AWS para criar um processo automatizado de processamento de dados


Happy coding! 🚀

About

Repositório com os códigos apresentados no minicurso AWS para Engenheiros de Dados, ministrado na SeTAC² de 2024.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •