https://github.com/epiresdasilva/iot-core-example
Example of how to use AWS IoT Core saving messages directly to a DynamoDB table and retrieving these messages through API Gateway and Lambda
https://github.com/epiresdasilva/iot-core-example
api-gateway aws cloud dynamodb iot iot-core lambda serverless
Last synced: 10 months ago
JSON representation
Example of how to use AWS IoT Core saving messages directly to a DynamoDB table and retrieving these messages through API Gateway and Lambda
- Host: GitHub
- URL: https://github.com/epiresdasilva/iot-core-example
- Owner: epiresdasilva
- License: apache-2.0
- Created: 2025-05-06T21:53:55.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-05-08T14:15:35.000Z (11 months ago)
- Last Synced: 2025-05-18T22:14:22.260Z (11 months ago)
- Topics: api-gateway, aws, cloud, dynamodb, iot, iot-core, lambda, serverless
- Language: JavaScript
- Homepage:
- Size: 189 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# IoT Core Example
Projeto de demonstração para processamento de mensagens MQTT com persistência em DynamoDB e API para consulta.
## Arquitetura

1. **AWS IoT Core** - Recebe mensagens MQTT dos dispositivos
2. **AWS IoT Rule** - Processa mensagens e adiciona timestamp
3. **Amazon DynamoDB** - Persiste mensagens com TTL configurado
4. **AWS Lambda** - Funções para consultar e confirmar processamento de mensagens
5. **Amazon API Gateway** - Expõe APIs para aplicações externas
## Funcionalidades
- 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)
## Estrutura do Projeto
```
/
├── 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
```
## Instruções de Uso
### Pré-requisitos
- Node.js 14+
- AWS CLI configurado
- AWS CDK instalado (`npm install -g aws-cdk`)
### Implantação
1. Instalar dependências:
```
npm install
```
2. Implantar a infraestrutura:
```
cdk deploy
```
3. Testar publicação de mensagens:
```
node scripts/publish-test.js
```
4. Consultar mensagens via API:
```
curl https://.execute-api..amazonaws.com/prod/messages
```
5. Confirmar processamento:
```
curl -X POST -H "Content-Type: application/json" \
-d '{"messageIds": ["id1", "id2"]}' \
https://.execute-api..amazonaws.com/prod/messages/ack
```