Skip to content

This project implements a serverless, multi-cloud image processing pipeline. Users can upload images through a web page hosted on AWS Amplify, which triggers a fully automated workflow to store, analyze, and back up the files using AWS and Azure services.

Notifications You must be signed in to change notification settings

Rodrigomattos93/S3_IMAGE_CLASSIFIER_PROJECT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image Upload and Classification Pipeline – AWS & Azure Integration

Presentation video link

Overview

This project implements a serverless, multi-cloud image processing pipeline.
Users can upload images through a web page hosted on AWS Amplify, which triggers a fully automated workflow to store, analyze, and back up the files using AWS and Azure services.

The solution demonstrates:

  • Secure IAM configuration with the principle of least privilege
  • Integration between AWS Lambda, Amazon Rekognition, S3, DynamoDB and Azure Blob Storage
  • Event-driven architecture with API Gateway triggers and S3 event notifications
  • Multi-cloud backup strategy

Architecture

Architecture Diagram

Flow:

  1. Frontend (AWS Amplify + GitHub)

    • HTML page hosted on AWS Amplify, connected to GitHub for automatic deployments.
    • Includes an upload button for the user to submit an image. AWS Amplify site
  2. API Gateway

    • REST API endpoint receives the uploaded image.
    • Acts as a trigger for the first AWS Lambda function.
  3. Lambda #1 – Upload & Classification

    • Uploads the image to an Amazon S3 bucket.
    • Sends the image to Amazon Rekognition for label detection.
    • Stores the detected labels in Amazon DynamoDB.
  4. Lambda #2 – Azure Backup

    • Triggered by an S3 PUT event.
    • Transfers the uploaded image to Azure Blob Storage as a backup.

Technologies Used

  • AWS Amplify – Frontend hosting & CI/CD
  • Amazon API Gateway – REST API trigger for Lambda
  • AWS Lambda – Serverless functions for processing and migration
  • Amazon S3 – Main image storage & event trigger
  • Amazon Rekognition – Image analysis and labeling
  • Amazon DynamoDB – Metadata storage for image labels
  • Azure Blob Storage – Backup storage in Azure
  • IAM (AWS Identity and Access Management) – Secure, minimal-permission roles

Security Practices

  • Created an IAM user with minimum required privileges for each AWS service involved.
  • No hardcoded secrets – credentials and sensitive data are stored in environment variables.

Proposed Improvement

A potential enhancement for this project is implementing Infrastructure as Code using Terraform to provision and manage AWS and Azure resources.

About

This project implements a serverless, multi-cloud image processing pipeline. Users can upload images through a web page hosted on AWS Amplify, which triggers a fully automated workflow to store, analyze, and back up the files using AWS and Azure services.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published