Projeto de demonstração para processamento de mensagens MQTT com persistência em DynamoDB e API para consulta.
- AWS IoT Core - Recebe mensagens MQTT dos dispositivos
- AWS IoT Rule - Processa mensagens e adiciona timestamp
- Amazon DynamoDB - Persiste mensagens com TTL configurado
- AWS Lambda - Funções para consultar e confirmar processamento de mensagens
- Amazon API Gateway - Expõe APIs para aplicações externas
- Recebimento e persistência de mensagens MQTT
- Adição automática de timestamp e ID único
- Consulta de mensagens não processadas
- Confirmação assíncrona de processamento
- TTL agressivo para mensagens processadas (24h)
- TTL estendido para mensagens pendentes (30 dias)
/
├── cdk/ # Infraestrutura como código (AWS CDK)
├── lambda/ # Funções Lambda
│ ├── getMessages/ # Consulta mensagens pendentes
│ └── ackMessages/ # Confirma processamento de mensagens
├── scripts/ # Scripts úteis
│ └── publish-test.js # Publica mensagens de teste
└── docs/ # Documentação
- Node.js 14+
- AWS CLI configurado
- AWS CDK instalado (
npm install -g aws-cdk
)
-
Instalar dependências:
npm install
-
Implantar a infraestrutura:
cdk deploy
-
Testar publicação de mensagens:
node scripts/publish-test.js
-
Consultar mensagens via API:
curl https://<api-id>.execute-api.<region>.amazonaws.com/prod/messages
-
Confirmar processamento:
curl -X POST -H "Content-Type: application/json" \ -d '{"messageIds": ["id1", "id2"]}' \ https://<api-id>.execute-api.<region>.amazonaws.com/prod/messages/ack