🔄 Uma aplicação serverless que processa eventos de criação de objetos no S3 e publica no RabbitMQ
- 🔥 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
poc-aws-serverless/
├── HackatonFiapUploadedEvent/
│ ├── src/
│ │ └── main/java/uploadedEvent/
│ │ └── LambdaHandler.java
│ ├── Dockerfile
│ └── pom.xml
├── events/
│ └── event.json
├── template.yaml
├── samconfig.toml
└── .gitignore
- ☁️ 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
- Clone o repositório:
git clone https://github.com/your-repo/poc-aws-serverless.git
cd poc-aws-serverless
- Build do projeto:
mvn clean install
- Build da imagem Docker:
sam build
- Deploy da aplicação:
sam deploy --guided
A aplicação utiliza estas variáveis de ambiente para o RabbitMQ:
- 🔑
RABBITMQ_BROKER_HOST
- 📬
RABBITMQ_QUEUE
- 🔌
RABBITMQ_PORT
- 👤
RABBITMQ_USERNAME
- 🔒
RABBITMQ_PASSWORD
- 📤 Gatilho: Função Lambda é acionada por eventos
ObjectCreated
do S3 - 🔍 Processamento: Filtra eventos
ObjectCreated:Put
e extrai chaves dos objetos - 📨 Publicação: Chaves dos objetos são publicadas na fila RabbitMQ
mvn test
sam local invoke HackatonFiapUploadedEvent --event events/event.json
Implantado usando AWS SAM com template.yaml
definindo todos os recursos.
Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para detalhes.