serverless/README.md
2016-12-05 11:48:51 -08:00

16 KiB
Executable File
Raw Blame History

Serverless Application Framework AWS Lambda API Gateway

serverless Build Status npm version Coverage Status gitter dependencies license

WebsiteDocsNewsletterGitterForumMeetupsTwitter

The Serverless Framework Build applications comprised of microservices that run in response to events, auto-scale for you, and only charge you when they run. This lowers the total cost of maintaining your apps, enabling you to build more logic, faster.

The Framework uses new event-driven compute services, like AWS Lambda, Google CloudFunctions, and more. It's a command-line tool, providing scaffolding, workflow automation and best practices for developing and deploying your serverless architecture. It's also completely extensible via plugins.

Serverless is an MIT open-source project, actively maintained by a full-time, venture-backed team.

Watch the video guide here.

Serverless Framework Feedback Survey

Contents

Quick Start

Watch the video guide here or follow the steps below to create and deploy your first serverless microservice in minutes.

  • Install via npm:
    • npm install -g serverless
  • Set-up your Provider Credentials
  • Create a Service:
    • Creates a new Serverless Service/Project
    • serverless create --template aws-nodejs --path my-service
    • cd my-service
  • Or Install a Service:
    • This is a convenience method to install a pre-made Serverless Service locally by downloading the Github repo and unzipping it. Services are listed below.
    • serverless install -u [GITHUB URL OF SERVICE]
  • Deploy a Service:
    • Use this when you have made changes to your Functions, Events or Resources in serverless.yml or you simply want to deploy all changes within your Service at the same time.
    • serverless deploy -v
  • Deploy Function:
    • Use this to quickly upload and overwrite your AWS Lambda code on AWS, allowing you to develop faster.
    • serverless deploy function -f hello
  • Invoke a Function:
    • Invokes an AWS Lambda Function on AWS and returns logs.
    • serverless invoke -f hello -l
  • Fetch Function Logs:
    • Open up a separate tab in your console and stream all logs for a specific Function using this command.
    • serverless logs -f hello -t
  • Remove a Service:
    • Removes all Functions, Events and Resources from your AWS account.
    • serverless remove

Check out our in-depth Serverless Framework Guide for more information.

Services (V1.0)

The following are services you can instantly install and use by running serverless install --url <service-github-url>

Note: the serverless install command will only work on V1.0 or later.

Features

  • Supports Node.js, Python, Java & Scala.
  • Manages the lifecycle of your serverless architecture (build, deploy, update, delete).
  • Safely deploy functions, events and their required resources together via provider resource managers (e.g., AWS CloudFormation).
  • Functions can be grouped ("serverless services") for easy management of code, resources & processes, across large projects & teams.
  • Minimal configuration and scaffolding.
  • Built-in support for multiple stages.
  • Optimized for CI/CD workflows.
  • Loaded with automation, optimization and best practices.
  • 100% Extensible: Extend or modify the Framework and its operations via Plugins.
  • An ecosystem of serverless services and plugins.
  • A passionate and welcoming community!

Plugins (V1.0)

Use these plugins to overwrite or extend the Framework's functionality...

Plugin name description
Serverless Alexa Plugin Serverless plugin to support Alexa Lambda events
Serverless Aws Models Serverless plugin to add models to the AWS API Gateway generated by Serverless
Serverless Build Plugin A Node.js focused build plugin for serverless.
Serverless Command Line Event Args This module is Serverless Framework plugin. Event JSON passes to your Lambda function in commandline.
Serverless Crypt Securing the secrets on Serverless Framework by AWS KMS encryption.
Serverless Dynamodb Local Serverless Dynamodb Local Plugin - Allows to run dynamodb locally for serverless
Serverless Event Constant Inputs Allows you to add constant inputs to events in Serverless 1.0. This is defined in https://aws.amazon.com/blogs/compute/simply-serverless-use-constant-values-in-cloudwatch-event-triggered-lambda-functions/
Serverless Mocha Plugin A Serverless Plugin for the Serverless Framework which adds support for test driven development using mocha
Serverless Offline Emulate AWS λ and API Gateway locally when developing your Serverless project
Serverless Plugin Aws Alerts A Serverless plugin to easily add CloudWatch alarms to functions
Serverless Plugin Browserify Speed up your node based lambda's
Serverless Plugin Cfauthorizer This plugin allows you to define your own API Gateway Authorizers as the Serverless CloudFormation resources and apply them to HTTP endpoints.
Serverless Plugin Cloudwatch Sumologic Plugin which auto-subscribes a log delivery lambda function to lambda log groups created by serverless
Serverless Plugin Diff Compares your local AWS CloudFormation templates against deployed ones.
Serverless Plugin External Sns Events Add ability for functions to use existing or external SNS topics as an event source
Serverless Plugin Include Dependencies This is a Serverless plugin that should make your deployed functions smaller.
Serverless Plugin Multiple Responses Enable multiple content-types for Response template
Serverless Plugin Optimize Bundle with Browserify, transpile with Babel to ES5 and minify with Uglify your Serverless functions.
Serverless Plugin Package Dotenv File A Serverless plugin to copy a .env file into the serverless package
Serverless Plugin Stack Outputs Displays stack outputs for your serverless stacks when sls info is ran
Serverless Plugin Stage Variables Add stage variables for Serverless 1.x to ApiGateway, so you can use variables in your Lambda's
Serverless Plugin Stage Variables Add stage variables for Serverless 1.x to ApiGateway, so you can use variables in your Lambda's
Serverless Plugin Write Env Vars Write environment variables out to a file that is compatible with dotenv
Serverless Resources Env After Deploy, this plugin fetches cloudformation resource identifiers and sets them on AWS lambdas, and creates local .-env file
Serverless Run Function Plugin Run serverless function locally
Serverless Scriptable Plugin Customize Serverless behavior without writing a plugin.
Serverless Subscription Filter Serverless plugin to register subscription filter for Lambda logs. Register and pipe the logs of one lambda to another to process.
Serverless Webpack Serverless plugin to bundle your lambdas with Webpack
Serverless Wsgi Serverless plugin to deploy WSGI applications (Flask/Django/Pyramid etc.) and bundle Python packages

Add a plugin to this list

Example Projects (V1.0)

Contributing

We love our contributors! Please read our Contributing Document to learn how you can start working on the Framework yourself.

Check out our exp/beginner, exp/intermediate or exp/expert labels to find issues we want to move forward on with your help.

Community

Consultants

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


Previous Serverless Version 0.5.x

You can find projects and plugins relating to version 0.5 here. Note that these are not compatible with v1.0 but we are working diligently on updating them. Guide on building v1.0 plugins.

You can read the v0.5.x documentation at readme.io.