A simple serverless backend API built using AWS Lambda, API Gateway, and DynamoDB.
This project demonstrates how to design and deploy a scalable cloud-native application without managing servers.
- Create tasks
- Retrieve tasks by userId
- Serverless architecture (no servers to manage)
- Scalable and cost-efficient design
- Built with a fully serverless architecture using managed AWS services
- Separates API routing, business logic, and data storage into distinct components
- Designed to be lightweight, scalable, and cost-efficient
- Demonstrates practical use of Lambda, API Gateway, and DynamoDB in a real deployment
GET: https://0azoel99xd.execute-api.us-east-1.amazonaws.com/tasks?userId=test-user
POST: https://0azoel99xd.execute-api.us-east-1.amazonaws.com/tasks
flowchart TD
subgraph AWS Cloud
B[API Gateway]
C[AWS Lambda Functions]
D[DynamoDB]
end
A[Client] -->|HTTP Request| B
B -->|Invoke Function| C
C -->|PutItem and Query| D
- AWS Lambda -> Handles business logic for creating and retrieving tasks
- API Gateway -> Exposes HTTP endpoints
- DynamoDB -> Stores task data
Retrieve all tasks for a specific user.
Example request:
GET /tasks?userId=test-user
Example response:
{
"tasks": [
{
"taskId": "123",
"title": "My first task",
"completed": false,
"createdAt": "2026-03-18T01:16:24.724434",
"userId": "test-user"
}
]
}Create a new task.
Example request body:
{
"userId": "test-user",
"title": "New Task"
}Example response:
{
"message": "Task created successfully"
}You can test the API using:
- Browser (for GET requests)
- Postman (recommended for POST requests)
- Curl (via terminal)
Example:
curl "https://0azoel99xd.execute-api.us-east-1.amazonaws.com/tasks?userId=test-user"
curl -X POST "https://0azoel99xd.execute-api.us-east-1.amazonaws.com/tasks" \
-H "Content-Type: application/json" \
-d '{"userId":"test-user","title":"New Task"}'- Node.js (AWS Lambda runtime)
- AWS Lambda
- Amazon API Gateway
- Amazon DynamoDB
aws-task-api/
├── createTask/
│ └── index.js
├── getTasks/
│ └── index.js
├── README.md
- Add authentication (JWT / Cognito)
- Input validation
- Error handling improvements
- Frontend integration (React or simple UI)
- Infrastructure as Code (Terraform or CloudFormation)
Julio Pardo
Cloud Computing Student | AWS Certified