The purpose of this overengineered project is to learn AWS and Python, nothing more. For that, I took a little practical idea of having an ability to send a book from [unnamed] site straight to my kindle and converted it to huge learning project.
The following technologies and languages were used during development:
- Python
- AWS, specifically:
- Lambda
- CodeBuild
- API Gateway
- IAM
- RDS, specifically PostgreSQL.
- S3
- Secrets Manager
- SNS (Simple Notifications Service)
- SQS (Simple Queue Service)
- Serverless
The solution consists of:
- Lambda triggered by API Gateway with POST to /books, which accepts JSON payload with which book to download and where to send it.
- Lambda that listens on queue, downloads a book and stores it on S3
- Lambda that listens on queue, and sends a book as attachment to mail address using SMTP server
- [Optional] PostgreSQL database that stores current state
- [Not implemented] Browser plugin that sends links to /books and initiates the whole process