/serverless

Serverless Framework – Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more! –

Primary LanguageJavaScriptOtherNOASSERTION

Serverless Application Framework AWS Lambda API Gateway

Serverless Framework (BETA)

serverless npm version gitter dependencies license

Serverless is the application framework for building web, mobile and IoT applications exclusively on Amazon Web Services' Lambda and API Gateway. It's a command line interface that helps you build and maintain serverless apps across teams of any size. It's also completely extensible via Plugins. We believe AWS Lambda will be the focal point of the AWS cloud, and the Serverless Framework interprets AWS from Lambda's perspective.

The Framework and its related tools are maintained by a dedicated, full-time team. For updates, join our Mailing List. We work on this live in our Gitter Chatroom. Please join us, everyone is welcome :)

Also, we are hiring. If you are a developer and these tools/ideologies appeal to you and you want to work on these all day long, please send us a message.

Serverless V.1 Alpha Now Available

We're currently working hard on releasing v1.0 of the Serverless Framework in the v1.0 branch, which will include support for other providers like Azure Functions, Google Functions and IBM Open Whisk. We already made an alpha release for v1.0. You can install it with:

npm install -g serverless@alpha

To get started experimenting with v1.0, read the v1.0 tutorial on our blog, then feel free to jump on the v1.0 docs to dig deeper.

Serverless v0.5.6

Features

  • Run/test AWS Lambda functions locally, or remotely
  • Auto-deploys, versions & aliases your Lambda functions
  • Auto-deploys your REST API to AWS API Gateway
  • Auto-deploys your Lambda events
  • Support for multiple stages
  • Support for multiple regions within stages
  • Support for separate credentials per stage
  • Manage & deploy AWS CloudFormation resources to each stage/region
  • Project Variables allow staged/regional values in config files
  • Project Templates reduce configuration
  • Environment variable support
  • Assign multiple endpoints and events to a function
  • Interactive CLI dashboard to easily select and deploy functions and endpoints
  • Optimize your Lambda functions for faster response times
  • Support for API Gateway custom authorizers
  • Project files can be published to npm
  • 100% Extensible - Extend or modify the Framework and its operations via Plugins
  • Powerful classes and methods for easy plugin development
  • AWS best practices and optimizations built in
  • A fantastic and welcoming community!

Getting Started

Install The Serverless Framework via npm: (requires Node V4)

npm install serverless -g

You can either install an existing project or create your own. We recommend starting out with the Serverless-Starter

serverless project install serverless-starter

Or you can create your own project

serverless project create

Refer to our documentation for more info. Enjoy!

Links

Projects

Serverless Projects are shareable and installable. You can publish them to npm and install them via the Serverless Framework CLI by using $ serverless project install <project-name>

Plugins

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

  • Meta Sync - Securely sync your the variables in your project's _meta/variables across your team.
  • Offline - Emulate AWS Lambda and Api Gateway locally to speed up your development cycles.
  • Hook Scripts - Easily create shell script hooks that are run whenever Serverless actions are executed.
  • CORS - Adds support for CORS (Cross-origin resource sharing).
  • Serve - Simulate API Gateway locally, so all function calls can be run via localhost.
  • Webpack - Use Webpack to optimize your Serverless Node.js Functions.
  • Serverless Client - Deploy and config a web client for your Serverless project to S3.
  • Alerting - This Plugin adds Cloudwatch Alarms with SNS notifications for your Lambda functions.
  • Optimizer - Optimizes your code for performance in Lambda. Supports coffeeify, babelify and other transforms
  • CloudFormation Validator - Adds support for validating your CloudFormation template.
  • Prune - Delete old versions of AWS lambdas from your account so that you don't exceed the code storage limit.
  • Base-Path - Sets a base path for all API Gateway endpoints in a Component.
  • Test - A Simple Integration Test Framework for Serverless.
  • SNS Subscribe - This plugin easily subscribes your lambda functions to SNS notifications.
  • JSHint - Detect errors and potential problems in your Lambda functions.
  • ESLint - Detect errors and potential problems in your Lambda functions using eslint.
  • Mocha - Enable test driven development by creating test cases when creating new functions
  • Function-Package - Package your lambdas without deploying to AWS.
  • Sentry - Automatically send errors and exceptions to Sentry.
  • Auto-Prune - Delete old AWS Lambda versions.
  • Serverless Secrets - Easily encrypt and decrypt secrets in your Serverless projects

Contributing

We love our contributors! If you'd like to contribute to the project, feel free to submit a PR. But please keep in mind the following guidelines:

  • Propose your changes before you start working on a PR. You can reach us by submitting a Github issue, or discuss it in the Gitter Chatroom. This is just to make sure that no one else is working on the same change, and to figure out the best way to solve the issue.
  • If you're out of ideas, but still want to contribute, check out our Road Map. There's a lot we want to get done, and we'd love your help!
  • Contributions are not just PRs! We'd be grateful for having you in our community, and if you could provide some support for new comers, that be great! You can also do that by answering Serverless related questions on Stackoverflow.
  • You can also contribute by writing. Feel free to let us know if you want to publish a useful original guide in our docs (attributed to you, thank you!) that you feel will help the community.

Consultants

These consultants use the Serverless Framework and can help you build your serverless projects.