Skip to content
This repository was archived by the owner on Apr 21, 2025. It is now read-only.

PoC de AWS Lambda responsável publicar o evento de upload realizado no RabbitMQ (Amazon MQ) para processamento assíncrono

Notifications You must be signed in to change notification settings

fiap-8soat-tc-one/poc-aws-serverless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Lambda para Eventos de Upload S3

🔄 Uma aplicação serverless que processa eventos de criação de objetos no S3 e publica no RabbitMQ

✨ Funcionalidades

  • 🔥 AWS Lambda: Gerencia eventos S3 acionados pela criação de objetos
  • 🐰 Integração RabbitMQ: Publica chaves de objetos S3 em uma fila RabbitMQ
  • 🐳 Build Dockerizado: Utiliza Dockerfile para construir e empacotar a função Lambda
  • AWS SAM: Gerencia o deployment e infraestrutura como código

📁 Estrutura do Projeto

poc-aws-serverless/
├── HackatonFiapUploadedEvent/
│   ├── src/
│   │   └── main/java/uploadedEvent/
│   │       └── LambdaHandler.java
│   ├── Dockerfile
│   └── pom.xml
├── events/
│   └── event.json
├── template.yaml
├── samconfig.toml
└── .gitignore

🔧 Pré-requisitos

  • ☁️ AWS CLI: Instalado e configurado
  • 🛠️ AWS SAM CLI: Instalado para build e deployment
  • 🐋 Docker: Instalado para build da imagem Lambda
  • Java 21: Instalado para desenvolvimento local
  • 📦 Maven: Instalado para gerenciamento de dependências

🚀 Configuração

  1. Clone o repositório:
git clone https://github.com/your-repo/poc-aws-serverless.git
cd poc-aws-serverless
  1. Build do projeto:
mvn clean install
  1. Build da imagem Docker:
sam build
  1. Deploy da aplicação:
sam deploy --guided

⚙️ Configuração

A aplicação utiliza estas variáveis de ambiente para o RabbitMQ:

  • 🔑 RABBITMQ_BROKER_HOST
  • 📬 RABBITMQ_QUEUE
  • 🔌 RABBITMQ_PORT
  • 👤 RABBITMQ_USERNAME
  • 🔒 RABBITMQ_PASSWORD

🔄 Como Funciona

  1. 📤 Gatilho: Função Lambda é acionada por eventos ObjectCreated do S3
  2. 🔍 Processamento: Filtra eventos ObjectCreated:Put e extrai chaves dos objetos
  3. 📨 Publicação: Chaves dos objetos são publicadas na fila RabbitMQ

🧪 Testes

Testes Unitários

mvn test

Testes Locais

sam local invoke HackatonFiapUploadedEvent --event events/event.json

🚀 Implantação

Implantado usando AWS SAM com template.yaml definindo todos os recursos.

📄 Licença

Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para detalhes.

About

PoC de AWS Lambda responsável publicar o evento de upload realizado no RabbitMQ (Amazon MQ) para processamento assíncrono

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published