An event-driven image processing pipeline on AWS. Images uploaded to a source S3 bucket are automatically queued via SQS and processed by a Lambda function that resizes into multiple size tiers, generates WebP variants, extracts EXIF metadata, and writes outputs to dynamically determined destination buckets.
| Build/Deploy | Application Stack | |
|---|---|---|
| Languages | Python, Shell | Node.js |
| Frameworks | Atlantis | Atlantis, Sharp |
| Features | SSM Parameters, Jest Tests | S3, SQS, Lambda, Sharp Layer, CloudWatch Logs, CloudWatch Alarms |
Ready-to-Deploy-and-Run with the 63Klabs Atlantis Templates and Scripts Platform for Serverless Deployments on AWS
- Image resizing into 6 size tiers (xxLarge, xLarge, large, medium, small, thumb) with aspect ratio preservation
- WebP variant generation alongside original format outputs (configurable)
- EXIF metadata extraction and
metadata.jsongeneration per image - JSON metadata upload and merge for updating descriptions, captions, and credits without re-uploading images
- Dynamic output bucket routing via S3 object tags (
ImageOutputBucket,ImageOutputPath) - Bucket authorization via
AllowImageResizerEventstag on destination buckets - Source bucket lifecycle management with configurable expiration and archive modes
- Comprehensive test suite with unit tests and property-based tests (fast-check)
- Read the Deployment Guide for repository setup and pipeline configuration
- Upload an image to the source bucket
uploads/prefix with required object tags:
aws s3api put-object \
--bucket SOURCE_BUCKET_NAME \
--key uploads/my-photo.jpg \
--body ./my-photo.jpg \
--tagging "ImageOutputBucket=my-output-bucket&ImageOutputPath=posts/2026-01-15"- The pipeline processes the image automatically — resized variants and
metadata.jsonappear in the output bucket
See End-User Documentation for full upload instructions and tag reference.
See Architecture
See Deployment Guide
See Docs Directory
See AGENTS.md for important context and guidelines for AI-generated code in this repository.
The agents file is also helpful (and perhaps essential) for HUMANS developing within the application's structured platform as well.
See Change Log