Git Product home page Git Product logo

serverless's Introduction

Serverless Application Framework AWS Lambda API Gateway

Serverless V0 (BETA) - Formerly "JAWS"

####The Serverless Application Framework Powered By Amazon Web Services - serverless.com

We've re-branded from JAWS and pushed out an entirely refactored product. We're now cleaning up bugs, finishing the new docs and fixing broken features. By the end of this week we will have made rapid progress. Please help us test, submit pull requests, and check out our Road Map for daily status updates. We will be moving quickly, stay tuned :)

Note: This project was formerly JAWS.

Links

Get Started

This is a command line tool. It requires Node V4. Install it via npm:

npm install serverless -g

Plugins

Serverless is comprised of Plugins. A group of default Plugins ship with the Framework, and here are some others you can add to improve/help your workflow:

  • Plugin Boilerplate - Make a Serverless Plugin with this simple boilerplate.
  • Serve - Simulate API Gateway locally, so all function calls can be run via localhost.
  • Alerting - This Plugin adds Cloudwatch Alarms with SNS notifications for your Lambda functions.
  • Optimizer - Optimizes your code for performance in Lambda.

Differences From JAWS:

  • Node V4: The new Serverless Command Line Tool uses Node V4. We recommend using n to seamlessly upgrade your local version of Node.
  • Name & Filename Changes: Having JAWS and AWSM was too confusing. Now, we're just Serverless and Serverless modules. Your project JSON is now s-project.json, your module JSON is now s-module.json and your function JSON is now s-function.json.
  • New Function JSON Format: Our new function JSON format (s-function.json) helps reduce boilerplate. You can still have 1 folder containing 1 Lambda w/ 1 Endpoint. However, now you can have 1 folder containing 1 Lambda w/ multiple endpoints. As well as 1 folder containing multiple Lambdas each with multiple endpoints. You can point your multiple Lambdas to different handlers on a single file, or to different files within the folder. It's flexible.
  • One Set Of Lambdas Per Region: JAWS created a separate CloudFormation stack of Lambdas for each stage + region. Serverless creates one set of Lambdas for all stages, and replicates them in every region used by your project.
  • AWS-Recommended Workflow: Lambda versioning and aliasing support is automatically included. Every time you deploy a Lambda, it is versioned and aliased to the stage you targeted your deployment to. This allows large teams to work on one set of Lambdas per region without trampling each other.
  • Removed CloudFormation Support For Project Lambdas: We no longer use CloudFormation to deploy your Lambdas. It is too slow and it is behind on features which we would like to support today. Our s-function.json resembles CF syntax, but is leaner and offers an abstraction layer which we will use to assist your workflow further in the near future. Lambda Function names are also much neater now.
  • 1 REST API Containing Your Project's Stages: JAWS created a separate REST API on API Gateway for each of your Project stages. Now, your project just has one REST API and your Project's Stages are added as stages on that REST API.
  • Stage Variable Support: Each stage in your API Gateway REST API uses an API Gateway stage variable to point to Lambdas aliased with the same stage name. By changing that variable, you can point all endpoints in your REST API Stage to an entirely different set of aliased Lambdas.
  • Plugin Architecture: Every Action Serverless does is a Plugin. You can make your own plugins too to add "pre" and "post" hooks on Actions, create custom Actions, or replace an Action entirely.

serverless's People

Contributors

austencollins avatar eahefnawy avatar nopik avatar dekz avatar boushley avatar shortjared avatar ryansb avatar joostfarla avatar icereval avatar visualasparagus avatar uiur avatar mcwhittemore avatar invertedacceleration avatar colinramsay avatar derekvanvliet avatar markogresak avatar friism avatar mparramont avatar ninir avatar forevermatt avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.