AWS Serverless Application Model

Build serverless applications in simple and clean syntax

The AWS Serverless Application Model (SAM) is an open-source framework for building serverless applications. It provides shorthand syntax to express functions, APIs, databases, and event source mappings. With just a few lines per resource, you can define the application you want and model it using YAML. During deployment, SAM transforms and expands the SAM syntax into AWS CloudFormation syntax, enabling you to build serverless applications faster.

To get started with building SAM-based applications, use the AWS SAM CLI. SAM CLI provides a Lambda-like execution environment that lets you locally build, test, and debug applications defined by SAM templates or through the AWS Cloud Development Kit (CDK). You can also use the SAM CLI to deploy your applications to AWS, or create secure continuous integration and deployment (CI/CD) pipelines that follow best practices and integrate with AWS' native and third party CI/CD systems.

SAM and SAM CLI are open-sourced under the Apache 2.0 license. You can contribute new features and enhancements to SAM on GitHub or SAM CLI on GitHub.

Getting Started with SAM

Install SAM CLI

Mac

Install SAM CLI using Brew

brew tap aws/tap
brew install aws-sam-cli

Requires Docker and the AWS CLI. See installation instructions

Install SAM CLI by downloading a ZIP file

Requires Docker and the AWS CLI. See installation instructions

Install SAM CLI using an MSI

Requires Docker and the AWS CLI. See installation instructions

Use AWS SAM CLI to build and test applications defined using AWS CDK.

Requires Node Package Manager. See installation instructions

Why SAM?

Single Deployment Configuration

Use SAM to organize related components, share configuration such as memory and timeouts between resources, and deploy all related resources together as a single, versioned entity.

Integration with Development Tools

SAM integrates with a suite of AWS serverless tools. Find new applications in the AWS Serverless Application Repository, use AWS Cloud9 IDE to author, test, and debug SAM-based serverless applications, and AWS CodeBuild, AWS CodeDeploy, and AWS CodePipeline to build a deployment pipeline. To start with a project structure, code repository, and CI/CD pipeline configured for you, try AWS CodeStar.

Local Testing and Debugging

Use SAM CLI to step-through and debug your code. It provides a Lambda-like execution environment locally and helps you catch issues upfront. 

Built on AWS CloudFormation

AWS SAM is an extension of AWS CloudFormation, so you get the reliable deployment capabilities of CloudFormation. You can also define resources using CloudFormation in your SAM template and use the full suite of resources, intrinsic functions, and other template features that are available in AWS CloudFormation.

Built-In Best Practices

Deploy your infrastructure as config to leverage best practices such as code reviews. Enable gradual deployments through AWS CodeDeploy and tracing using AWS X-Ray with just a few lines of SAM config.

Contribute to SAM

Make pull requests, report bugs, and share ideas to improve the full AWS SAM template specification

Add new commands or enhance existing ones, report bugs, and improve documentation for the SAM CLI

Want to dive into the docs or watch a SAM tutorial? 

Visit the SAM resources page
Have more questions?
Contact us