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.
serverless CLI via NPM:
npm install -g serverless
To create your first project, run the command below and follow the prompts:
# Create a new serverless project serverless # Move into the newly created directory cd your-service-name
serverless command will guide you to:
- create a new project
- configure AWS credentials
- optionally set up a free Serverless Dashboard account to monitor and troubleshoot your project
Note: users based in China get a setup centered around the chinese Tencent provider. To use AWS instead, set the following environment variable:
Your new serverless project should contain a
serverless.yml file. This file defines what will be deployed to AWS: functions, events, resources and more. You can learn more about this in the Core Concepts documentation.
If the templates proposed by
serverless 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
If you haven't done so already within the
serverless command, you can deploy the project at any time by running:
The deployed functions, resources and URLs will be displayed in the command output.
If you deployed an API, querying its URL will trigger the associated Lambda function. You can find that URL in the
serverless deploy output, or retrieve it later via
If you deployed a function that isn't exposed via a URL, you can invoke it via:
serverless invoke -f hello # Invoke and display logs: serverless invoke -f hello --log
Fetching function logs
All logs generated by a function's invocation are automatically stored in AWS CloudWatch. Retrieve those logs in the CLI via:
serverless logs -f hello # Tail logs serverless logs -f hello --tail
You can monitor and debug Lambda functions and APIs via the Serverless Dashboard.
To set it up, run the following command in an existing project and follow the prompts:
Remove your service
If you want to delete your service, run
serverless 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.
Now that Serverless Framework is installed, here is what you can do next:
- Follow the tutorial to create an example HTTP API with Node
- Learn about the core concepts in Serverless Framework
- Redeploy a single function for iterating faster while developing
- Discover all the events that can trigger Lambda functions
- Check out the plugins registry
- Supports Node.js, Python, Java, Go, C#, Ruby, Swift, Kotlin, PHP, Scala, & F#
- 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!
Try Serverless Console
Monitor, observe, and trace your serverless architectures.
Real-time dev mode provides streaming logs from your AWS Lambda Functions.
Get started instantly with
We love our contributors! Please read our Contributing Document to learn how you can start working on the Framework yourself.
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.
You can read the v0.5.x documentation at readme.io.