Input
A file is uploaded into a designated prefix in an Amazon S3 bucket.
AWS internship capstone · 2025
When a file is uploaded to Amazon S3, AWS Lambda reads its object metadata, converts it into a consistent record, and stores that record in Amazon DynamoDB.
The workflow removes the manual step of inspecting every uploaded file before its metadata can be recorded or used elsewhere.
A file is uploaded into a designated prefix in an Amazon S3 bucket.
An S3 event invokes Lambda, which validates the event and reads object headers with HeadObject.
A normalized metadata item is written to DynamoDB with a deterministic record identifier.
Each service has one responsibility, which keeps the workflow small enough to troubleshoot and inexpensive to operate.
Storage and event source
Stores uploaded files and emits object-created notifications only for the configured intake prefix.
Compute
Decodes the key, reads metadata, validates required values, and prepares a normalized item.
Persistence
Stores one record per object identity and rejects duplicate conditional writes safely.
The original capstone covered the complete path from upload through storage and presentation.
The public repository recreates the architecture without exposing internal Amazon files, accounts, or customer information.
template.yaml defines the S3 bucket, Lambda function, DynamoDB table, SQS failure destination, IAM permissions, log retention, and CloudWatch alarms.
The Python function handles URL-encoded keys, versioned objects, deterministic record IDs, duplicate deliveries, and clear failure propagation.
Open the Lambda functionS3 event notifications can be delivered more than once, so the workflow treats duplicate delivery as normal system behavior rather than an exceptional case.
The bucket, object key, and object version are combined into a stable record ID.
DynamoDB uses attribute_not_exists(RecordId) so a duplicate event cannot overwrite an existing record.
Lambda retries asynchronous failures and sends exhausted events to an encrypted SQS failure queue.
CloudWatch alarms cover function errors, throttling, and messages waiting in the failure queue.
The public implementation is checked as code, infrastructure, and documentation rather than presented only as an architecture graphic.
make checkThese articles provide the longer context behind the internship, cloud cost decisions, and the way I learned the platform.
The training environment, troubleshooting process, capstone, and exact scope of the work.
Read articleA practical checklist for finding active resources, setting alerts, and avoiding surprise charges.
Read articleHow certification study connected cloud theory to consoles, permissions, logs, and troubleshooting.
Read articleThe original project was completed in isolated AWS internship training and project environments. This repository is a public reconstruction of the architecture, not an export of internal Amazon material. It contains no production customer data and does not imply ownership of live customer systems or an enterprise on-call rotation.
My portfolio includes cloud support, full-stack development, AI systems, technical documentation, and open-source contributions.