This project demonstrates a serverless event processing pipeline that:
- Captures device data from IoT topics
- Streams the data through Kinesis Data Streams
- Processes events with a Rust-based Lambda consumer
When a message is published to the IoT topic, it's automatically delivered to a Kinesis Data Stream. A Lambda function written in Rust continuously polls the stream using an EventSourceMapping and processes the incoming data.
Reference: AWS Lambda EventSourceMapping Documentation
- AWS Account with permissions
- AWS CLI configured with credentials
- Terraform
- Rust
- Cargo Lambda
Navigate to the infrastructure folder and run:
terraform init
terraform plan
terraform apply
Run the provided simulation script to publish 100 test events to the IoT topic:
./simulate.sh
You can then verify the event processing by checking the CloudWatch logs:
- Navigate to CloudWatch Logs in the AWS Console
- Find the log group:
/aws/lambda/kinesis/stream/consumer
- You should see entries for each of the 10 events processed
When you're finished with the project, remove all resources:
terraform destroy