All Projects â†’ LinusU â†’ Scandium

LinusU / Scandium

🚀 Easily deploy any Node.js web server to AWS Lambda

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Scandium

Serverless Express
Run Node.js web applications and APIs using existing application frameworks on AWS #serverless technologies such as Lambda, API Gateway, Lambda@Edge, and ALB.
Stars: ✭ 4,265 (+6891.8%)
Mutual labels:  api-gateway, aws-lambda, express
Claudia
Deploy Node.js projects to AWS Lambda and API Gateway easily
Stars: ✭ 3,690 (+5949.18%)
Mutual labels:  api-gateway, aws-lambda
This Repo Has 350 Stars
Yes, it's true 💕 This repository has 350 stars.
Stars: ✭ 350 (+473.77%)
Mutual labels:  api-gateway, aws-lambda
Up
Up focuses on deploying "vanilla" HTTP servers so there's nothing new to learn, just develop with your favorite existing frameworks such as Express, Koa, Django, Golang net/http or others.
Stars: ✭ 8,439 (+13734.43%)
Mutual labels:  api-gateway, aws-lambda
Aws Cognito Apigw Angular Auth
A simple/sample AngularV4-based web app that demonstrates different API authentication options using Amazon Cognito and API Gateway with an AWS Lambda and Amazon DynamoDB backend that stores user details in a complete end to end Serverless fashion.
Stars: ✭ 278 (+355.74%)
Mutual labels:  api-gateway, aws-lambda
Grant
OAuth Proxy
Stars: ✭ 3,509 (+5652.46%)
Mutual labels:  aws-lambda, express
Vandium Node
AWS Lambda framework for building functions using Node.js for API Gateway, IoT applications, and other AWS events.
Stars: ✭ 377 (+518.03%)
Mutual labels:  api-gateway, aws-lambda
hyperform
âš¡ Lightweight serverless framework for NodeJS
Stars: ✭ 156 (+155.74%)
Mutual labels:  aws-lambda, api-gateway
Lambda Api
Lightweight web framework for your serverless applications
Stars: ✭ 929 (+1422.95%)
Mutual labels:  api-gateway, aws-lambda
Corgi
AWS Lambda / API Gateway native, fast and simple web framework
Stars: ✭ 44 (-27.87%)
Mutual labels:  api-gateway, aws-lambda
Aws Serverless Java Container
A Java wrapper to run Spring, Jersey, Spark, and other apps inside AWS Lambda.
Stars: ✭ 1,054 (+1627.87%)
Mutual labels:  api-gateway, aws-lambda
Aegis
Serverless Golang deploy tool and framework for AWS Lambda
Stars: ✭ 277 (+354.1%)
Mutual labels:  api-gateway, aws-lambda
Zappa
Serverless Python
Stars: ✭ 224 (+267.21%)
Mutual labels:  api-gateway, aws-lambda
Express
âš¡ Take existing Express.js apps and host them easily on cheap, auto-scaling, serverless infrastructure (AWS Lambda and AWS HTTP API).
Stars: ✭ 337 (+452.46%)
Mutual labels:  aws-lambda, express
Fullstack App
âš¡ Ready-to-use, serverless, full-stack application built with AWS Lambda, Express.js, React, AWS DynamoDB and AWS HTTP API.
Stars: ✭ 265 (+334.43%)
Mutual labels:  aws-lambda, express
Haveibeenpwned Zxcvbn Lambda Api
Deploy your own secure API to estimate password strength and check haveibeenpwned for known matches - HTTPS by force, server not required, fire and brimstone sold separately 🔥
Stars: ✭ 57 (-6.56%)
Mutual labels:  aws-lambda, express
webpack-aws-lambda
AWS Lambda that runs webpack and output the bundle.js file
Stars: ✭ 12 (-80.33%)
Mutual labels:  aws-lambda, api-gateway
Helios
An open source and easy-to-use monitoring tool for your AWS serverless applications.
Stars: ✭ 51 (-16.39%)
Mutual labels:  aws-lambda, api-gateway
Mangum
AWS Lambda & API Gateway support for ASGI
Stars: ✭ 475 (+678.69%)
Mutual labels:  api-gateway, aws-lambda
Serverless Es Logs
A Serverless plugin to transport logs to ElasticSearch
Stars: ✭ 51 (-16.39%)
Mutual labels:  api-gateway, aws-lambda

Scandium

Easily deploy any Node.js web server to AWS Lambda.

Scandium can deploy your Express, Koa or similar app to lambda, without any modifications to your code. Combined with AWS API Gateway you can have your current API running serverless in no time 😎

Prerequisites

Scandium requires Node.js, Docker, and a working AWS config w/ credentials. If you are unfamiliar with the AWS config an easy way to get started is to install the AWS CLI and run aws configure.

macOS w/ Brew:

brew install node
brew cask install docker
brew install awscli
aws configure

Linux w/ Snap:

sudo snap install node --classic
sudo snap install docker
sudo snap install aws-cli --classic
aws configure

Windows w/ Chocolatey:

choco install nodejs
choco install docker-desktop
choco install awscli
aws configure

Installation

npm install --global scandium

Usage

To create a new Lambda function, use the scandium create command. This will package your application and upload it to AWS Lambda, as well as configure an API Gateway in front of your function.

scandium create --name=my-awesome-api

You should now be presented with a url where you can access your api.

Now serving live requests at: https://xxxxxxxxxx.execute-api.us-west-2.amazonaws.com/default

Whenever you make changes to your app, you can upload a new version of it by using the scandium update command. This will package your application again, and upload it as a new version to the specified Lambda function. It will also update the configuration of the API Gateway to point at the new function.

scandium update --name=my-awesome-api

Tutorials

API Gateway

By default, Scandium will set up an API Gateway that simply forwards all requests to the Lambda function. If you want to utilise the benefits of API Gateway fully, you can provide a Swagger file describing your API endpoints. Pass the --swagger=my-api-definition.yml to either the create or update command and Scandium will configure the API Gateway for you.

prepare/build-scripts

Scandium has support for prepare/build scripts, if the script is present in the package.json it will make sure that the script is being run with full devDependencies installed. The final package being uploaded to Lambda will still only contain the production dependencies.

If both a prepare and a build script is present, Scandium will pick the prepare script.

Ignore files

If there is a .dockerignore file present, that one will be used when building the app. Otherwise, if a .gitignore file is present, that one will be used. If none of these files exists, a built in list that just contains .git and node_modules will be used.

Deploy Hooks

If you want to run any specific script inside the Lambda once during each deploy (e.g. for running database migrations), you can use the --hooks flag. Pass it the name of a file exporting functions for each hook you want to run.

Currently there is only one hook, named deploy, that will run after your Lambda is created, and before the API Gateway is updated to the new Lambda.

Example file:

const runDatabaseMigrations = require('...')

exports.deploy = async function () {
  await runDatabaseMigrations()
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].