✅ Automated Image Processing System : The project develops an automated solution for image processing and management within AWS.
✅ Efficient Image Handling : It automatically resizes images and transfers them to a designated storage location.
✅ Real-Time Notifications : Stakeholders receive instant updates on image processing and transfers.
✅ AWS Service Integration : Utilizes AWS Lambda, S3, and SNS to orchestrate the workflow.
💡 Image Processing Automation – Automatically resize and optimize images upon upload.
🔒 Secure Storage – Store processed images in a secure and reliable S3 bucket.
📩 Real-time Notifications – Receive instant updates about image processing via SNS.
📈 Scalable Architecture – Designed to handle high image processing demands.
💰 Cost-efficient Solution – Leverages AWS serverless technologies to minimize operational costs.
- Uploaded image to source-image-bucket.
- Checked destination-resized-bucket for the resized image.
- Verifed SNS notification for the processed image.
- User uploads an image to an S3 Source Bucket.
- AWS S3 triggers Lambda upon new uploads.
- Lambda processes and resizes the image using PIL (Python Imaging Library).
- Resized images are stored in the Destination S3 Bucket.
- CloudWatch Logs capture execution details.
- Utilized boto3 for S3 interactions.
- Implemented image resizing (default: 300x300 pixels).
- Optimized image storage with BytesIO buffer.
- Configured IAM roles for Lambda execution.
- Enabled SNS notifications for error handling.
- Implemented CloudWatch logging & monitoring.
- Go to AWS S3 Console.
- Create a Source Bucket (e.g.,
source-image-bucket
). - Create a Destination Bucket (e.g.,
destination-resized-bucket
). - Modify public access settings if required.
- Navigate to the SNS Console.
- Create a new SNS Topic (e.g.,
image-processing-topic
). - Add a Subscription to the topic (choose email or Lambda as an endpoint).
- Confirm the subscription status via email for notifications.
- Go to AWS Lambda Console.
- Click Create Function > Author from Scratch.
- Name it resize-image-function.
- Choose Python 3.x as the runtime.
- Set up an execution role with S3, SNS, and CloudWatch permissions.
- Go to the IAM Console.
- Create a new IAM Role.
- Attach the following permissions:
- Full access to S3.
- Invoke Lambda.
- Publish to SNS.
- Log execution in CloudWatch.
- Result of Attached permissions:
- Create an IAM policy with the required permissions.
- Attach it to the Lambda function’s execution role.
- Go to Lambda Console.
- Navigate to Configuration > Triggers.
- Add S3 Trigger for
source-image-bucket
. - Set event type to PUT (Object Created).
- Open the Lambda Code Editor.
- Paste the script from
lambda_function.py
. - Click Deploy.
- Run a Test Event to verify execution.
- Retrieve the updated code from
lambda_function.py
for execution.
arn:aws:lambda:ap-south-1:770693421928:layer:Klayers-p39-pillow:1
- Upload an image to source-image-bucket.
- Check destination-resized-bucket for the resized image.
- Verifed SNS notification for the processed image.
✅ Fully automated image resizing system in AWS.
✅ Hands-on experience in Lambda, S3, IAM, SNS, and CloudWatch.
✅ Secure and scalable AWS architecture.
✅ Efficient image processing with PIL and S3 storage.
- 🔗 Stay updated on LinkedIn for more DevOps projects and insights.
- 🎯 Follow along as I explore Cloud Infrastructure, Ansible Automation, and DevOps practices.
- 🤝 Let's collaborate and build scalable solutions together!