Final Project: Deploy a Serverless API on AWS
Combine IAM, Lambda, API Gateway, and S3 into one real, working serverless API.
Requirements
- Write at least two Lambda functions (e.g. a
GET /itemsand aPOST /items) and expose them through API Gateway with real routes. - Give each Lambda function's execution role only the specific permissions it needs (e.g. the write function gets
s3:PutObject, the read function only getss3:GetObject), not broad admin access. - Store data in S3 (as JSON objects) or another AWS data store of your choice, read and written through your Lambda functions, not hardcoded.
- Set up at least one AWS Budget alert on the account you're using, even a small one, as practice for a real project.
- Document your architecture (which resources you created and how they connect) in a short README.
Stretch goals
- Put your S3 bucket behind a bucket policy that blocks all public access, and confirm your Lambda functions can still read/write it via their IAM role.
- Add a scheduled (EventBridge) Lambda function that runs on a timer, e.g. cleaning up old data.
- Put your whole setup in a VPC with a private subnet, and give your Lambda functions VPC access to reach a resource that isn't publicly exposed.
Submit a link to your finished project (a repo, or a written architecture summary with screenshots of your working API) below, an instructor will review it before you can mark this lesson complete. Good luck! 🚀