Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Serverless | 44,831 | 1,618 | 830 | 19 hours ago | 1,987 | September 19, 2022 | 1,025 | mit | JavaScript | |
⚡ Serverless Framework – Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more! – | ||||||||||
Sst | 15,256 | 4 | 11 hours ago | 681 | September 23, 2022 | 674 | mit | JavaScript | ||
💥 SST makes it easy to build full-stack serverless apps. | ||||||||||
Awesome Aws | 11,531 | 3 days ago | 1 | December 21, 2015 | 65 | other | Python | |||
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome. | ||||||||||
Examples | 10,886 | 9 days ago | 19 | April 25, 2021 | 170 | other | JavaScript | |||
Serverless Examples – A collection of boilerplates and examples of serverless architectures built with the Serverless Framework on AWS Lambda, Microsoft Azure, Google Cloud Functions, and more. | ||||||||||
Chalice | 9,775 | 126 | 31 | 2 days ago | 86 | June 01, 2022 | 439 | apache-2.0 | Python | |
Python Serverless Microframework for AWS | ||||||||||
Serverless Application Model | 9,037 | 84 | 15 | a day ago | 59 | June 07, 2022 | 124 | apache-2.0 | Python | |
The AWS Serverless Application Model (AWS SAM) transform is a AWS CloudFormation macro that transforms SAM templates into CloudFormation templates. | ||||||||||
Up | 8,687 | 68 | 13 | 3 months ago | 11 | March 02, 2018 | 291 | mit | Go | |
Deploy infinitely scalable serverless apps, apis, and sites in seconds to AWS. | ||||||||||
Webiny Js | 6,592 | 113 | a day ago | 251 | September 07, 2022 | 254 | other | TypeScript | ||
Open-source serverless enterprise CMS. Includes a headless CMS, page builder, form builder, and file manager. Easy to customize and expand. Deploys to AWS. | ||||||||||
Aws Sam Cli | 6,315 | 31 | 12 | 6 hours ago | 129 | June 29, 2022 | 357 | apache-2.0 | Python | |
CLI tool to build, test, debug, and deploy Serverless applications using AWS SAM | ||||||||||
Docker Lambda | 5,852 | 38 | 14 | 5 months ago | 15 | June 30, 2018 | 68 | mit | C# | |
Docker images and test runners that replicate the live AWS Lambda environment |
Website Docs Community Slack Forum Twitter Meetups We're Hiring
The Serverless Framework Build applications on AWS Lambda and other next-gen cloud services, that auto-scale and only charge you when they run. This lowers the total cost of running and operating your apps, enabling you to build more and manage less.
The Serverless Framework is a command-line tool that uses easy and approachable YAML syntax to deploy both your code and cloud infrastructure needed to make tons of serverless application use-cases. It's a multi-language framework that supports Node.js, Typescript, Python, Go, Java, and more. It's also completely extensible via over 1,000 plugins that can add more serverless use-cases and workflows to the Framework.
Actively maintained by Serverless Inc.
Here's how to get started quickly, as well as some recommended development workflows.
Install serverless
module via NPM:
npm install -g serverless
If you dont already have Node.js on your machine, install it first. If you don't want to install Node or NPM, you can install serverless as a standalone binary.
To create your first project (known as a Serverless Framework "Service"), run the serverless
command below, then follow the prompts.
# Create a new serverless project
serverless
# Move into the newly created directory
cd your-service-name
The serverless
command will guide you to:
Your new serverless project will contain a serverless.yml
file. This file features simple syntax for deploying infrastructure to AWS, such as AWS Lambda functions, infrastructure that triggers those functions with events, and additional infrastructure your AWS Lambda functions may need for various use-cases. You can learn more about this in the Core Concepts documentation.
The serverless
command will give you a variety of templates to choose from. If those do not fit your needs, check out the project examples from Serverless Inc. and our community. You can install any example by passing a GitHub URL using the --template-url
option:
serverless --template-url=https://github.com/serverless/examples/tree/v3/...
Please note that you can use serverless
or sls
to run Serverless Framework commands.
If you haven't done so already within the serverless
command, you can deploy the project at any time by running:
sls deploy
The deployed AWS Lambda functions and other essential information such as API Endpoint URLs will be displayed in the command output.
More details on deploying can be found here.
Many Serverless Framework users choose to develop on the cloud, since it matches reality and emulating Lambda locally can be complex. To develop on the cloud quickly, without sacrificing speed, we recommend the following workflow...
To deploy code changes quickly, skip the serverless deploy
command which is much slower since it triggers a full AWS CloudFormation update. Instead, deploy code and configuration changes to individual AWS Lambda functions in seconds via the deploy function
command, with -f [function name in serverless.yml]
set to the function you want to deploy.
sls deploy function -f my-api
More details on the deploy function
command can be found here.
To invoke your AWS Lambda function on the cloud, you can find URLs for your functions w/ API endpoints in the serverless deploy
output, or retrieve them via serverless info
. If your functions do not have API endpoints, you can use the invoke
command, like this:
sls invoke -f hello
# Invoke and display logs:
serverless invoke -f hello --log
More details on the invoke
command can be found here.
If you want to open a session that streams logs from one or multiple AWS Lambda functions, use the new Serverless Framework dev
command. Instead of relying on AWS Cloudwatch (which is slow) this leverages our new Serverless Console to stream logs and more in less than 1 second to your CLI. It's free, it supports streaming from multiple AWS Lambda functions simultaneously, and it also will stream inputs and outputs your AWS Lambda functions and their SDK calls.
sls dev
If you use the --verbose
flag, the dev
command will stream requests and responses of your AWS Lambda functions, as well as your AWS SDK calls, so you can inspect what's happening with AWS DynamoDB, AWS S3, and much more.
sls dev --verbose
By default, dev
streams logs from all functions in your Serverless Framework Service. But you can target a specific function like this:
sls dev -f my-function
You can also target a specific Stage, like this (we do not recommend using Dev Mode in production or with a high volume of AWS Lambda invocations):
sls dev -s dev
Please note, the dev
command currently only supports Node.js and Python AWS Lambda runtimes. If you want to stream from AWS Cloudwatch instead, you can use the tail
command: serverless logs -f hello --tail
. Please note, this is much slower.
Many Serverless Framework users rely on local emulation to develop more quickly. Please note, emulating AWS Lambda and other cloud services is never accurate and the process can be complex. We recommend the following workflow to develop locally...
Use the invoke local
command to invoke your function locally:
sls invoke local -f my-api
You can also pass data to this local invocation via a variety of ways. Here's one of them:
serverless invoke local --function functionName --data '{"a":"bar"}'
More details on the invoke local
command can be found here
Serverless Framework also has a great plugin that allows you to run a server locally and emulate AWS API Gateway. This is the serverless-offline
command.
More details on the serverless-offline plugins command can be found here
Monitoring AWS Lambda and its other resources dependencies can be challenging (especially as your number of resources grow). This generally involves jumping around various services and products within AWS Cloudwatch.
Fortunately, we've delivered a consolidated and elegant solution to monitoring AWS Lambda in Serverless Console. You'll get a bunch of delightful features out of the box:
To set up Serverless Console automatically, run:
sls --console
Serverless Console is designed for developers, and it moves at their speed.
If you want to delete your service, run remove
. This will delete all the AWS resources created by your project and ensure that you don't incur any unexpected charges. It will also remove the service from Serverless Dashboard.
sls remove
More details on the remove
command can be found here.
Here are some helpful resources for continuing with the Serverless Framework:
serverless.yml
guideWe love our contributors! Please read our Contributing Document to learn how you can start working on the Framework yourself.
Check out our help wanted or good first issue labels to find issues we want to move forward on with your help.
Serverless is licensed under the MIT License.
All files located in the node_modules and external directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms in the MIT License.