Skip to content

Serverless image scaling service build to run on AWS infrastructure.

Notifications You must be signed in to change notification settings

MaximeNdutiye/ORION

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ORION

Serverless image scaling service built with AWS Lambda and API Gateway.

Build Status

Building the Docker images

A Dockerfile is provided to build a container with the required dependencies.

make container

Set up AWS-CLI

Set up AWS credentials in the container using make and a credentials.csv file containing credentials of an IAM user capable of deploying.

Run make setupAWS after mounting the .csv inside the container in /go

or manually setup credentials yourself using aws configure inside the container

or simply setup environment variables

$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_DEFAULT_REGION=us-west-2

Running the container

Run the container with the required directories mounted using the following command

make runcontainer

Building & Packaging

The lambda function must be package into a zip file so it can be deployed by Terraform make zip will build an orion executable and a lambda.zip

Deploying & Destroying

make deploy will automatically build lambda.zip and use Terraform to create the AWS architecture

make destroy conversly destroys the AWS deployment

Run Tests

Run a simple test to check the API Gateway endpoint to ensure that the lambda is working as intended make test

AWS Architecture Diagram

architecture.png

FUTURE

  • Require authentication to access lambda
  • More features: filters, convertion, video scaling...
  • Seamless upgrades and rollbacks by versioning resources with prefixes

Built with 💜 By:

Maxime

About

Serverless image scaling service build to run on AWS infrastructure.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published