aws-sam-cli is a free, open source api development & testing project written in Python and released under Apache-2.0. It has 6,733 GitHub stars, 1,248 forks and 535 open issues, and was last pushed 14 hours ago. On this registry it ranks #34 of 103 tracked projects in API Development & Testing, with 5 head-to-head comparisons available.

What is aws-sam-cli?

AWS SAM CLI is an open-source command-line tool for building, testing, debugging, and deploying serverless applications on AWS, aimed at developers and teams working with Lambda functions, Step Functions, API Gateway, and related services.

What it is

AWS SAM CLI is the command-line interface for the AWS Serverless Application Model. It is written in Python, licensed under Apache-2.0, and lives in the AWS serverless ecosystem alongside Lambda, Step Functions, API Gateway, EventBridge, SQS, and SNS. It provides a Lambda-like execution environment so that serverless applications can be built, tested, debugged, and deployed from a terminal or a CI/CD pipeline. The homepage sits at aws.amazon.com/serverless/sam, with installation and quick-start documentation in the AWS Serverless Application Model developer guide.

The concrete problem it solves is the gap between writing function code and getting it running. Before the CLI, teams assembled their own Makefile workflows to compile and package Lambda functions and then managed CloudFormation template deployment by hand. SAM CLI replaces those ad-hoc workflows with named commands: sam build compiles, builds, and packages Lambda functions for both zip and image function types, using provided runtimes or custom Makefile workflows, and sam deploy handles deployment of SAM and CloudFormation templates. The same toolchain covers the local and the cloud end of the loop, so packaging logic is not rewritten per project.

Key capabilities

  • sam init initializes serverless applications in minutes from AWS-provided infrastructure templates.
  • sam build compiles, builds, and packages Lambda functions with provided runtimes and custom Makefile workflows, for zip and image function types.
  • sam local commands test a Lambda function and API Gateway locally inside a Docker container, working with both SAM and CDK applications.
  • sam sync syncs and tests changes in cloud developer environments, the workflow behind SAM Accelerate.
  • sam deploy deploys SAM and CloudFormation templates.
  • sam pipeline init creates CI/CD pipelines from prebuilt templates for popular CI/CD systems.
  • sam logs and sam traces tail CloudWatch logs and X-Ray traces.

Who uses it and how

  • Serverless developers assembling applications from Lambda functions, Step Functions, API Gateway, EventBridge, SQS, and SNS.
  • Teams running CDK applications that use sam local for local Lambda and API Gateway testing rather than deploying to check behaviour.
  • Developers using SAM Accelerate and sam sync to test incremental changes directly in a cloud developer environment, including work with nested stacks.
  • Node and TypeScript teams building with esbuild, a workflow documented in the project's blog posts.
  • Platform and application teams that need CI/CD from sam pipeline init instead of hand-written pipeline definitions.

Getting started

Install through Homebrew with the tap aws/tap/aws-sam-cli or through pip with the package aws-sam-cli; the README points to the official installation page and a "Hello World" web app quick start for the first build and deploy.

How it compares

No paid products that this project replaces are listed in the facts, and no similar tools are named. Among the adjacent tooling that is named, SAM CLI sits alongside AWS CloudFormation and the AWS CDK rather than competing with them: it consumes SAM and CloudFormation templates and tests CDK applications locally. On that basis it stands alone in this registry as the AWS-specific CLI for serverless build, local test, and deploy workflows.

When to use it — and when not to

Local testing requires Docker, deployment and sync require AWS credentials and live cloud resources, and adopting the tool means committing to the SAM and CloudFormation template model, so teams running on other clouds or avoiding CloudFormation should look elsewhere. The project carries 535 open issues, which is worth weighing against its Apache-2.0 licence and its recent commit activity. The README is oriented toward AWS documentation and workshops, so expect to follow external links rather than learn everything from the repository alone.

project readme (upstream, from github) — read inline

AWS SAM CLI

Apache 2.0 License SAM CLI Version Install pip

Installation | Blogs | Videos | AWS Docs | Roadmap | Try It Out | Slack Us

The AWS Serverless Application Model (SAM) CLI is an open-source CLI tool that helps you develop serverless applications containing Lambda functions, Step Functions, API Gateway, EventBridge, SQS, SNS and more. Some of the features it provides are:

  • Initialize serverless applications in minutes with AWS-provided infrastructure templates with sam init
  • Compile, build, and package Lambda functions with provided runtimes and with custom Makefile workflows, for zip and image types of Lambda functions with sam build
  • Locally test a Lambda function and API Gateway easily in a Docker container with sam local commands on SAM and CDK applications
  • Sync and test your changes in the cloud with sam sync in your developer environments
  • Deploy your SAM and CloudFormation templates using sam deploy
  • Quickly create pipelines with prebuilt templates with popular CI/CD systems using sam pipeline init
  • Tail CloudWatch logs and X-Ray traces with sam logs and sam traces

Recent blogposts and workshops

  • Speeding up incremental changes with AWS SAM Accelerate and Nested Stacks - Read blogpost here.

  • Develop Node projects with SAM CLI using esbuild - and use SAM Accelerate on Typescript projects. Read blogpost here.

  • Speed up development with SAM Accelerate - quickly test your changes in the cloud. Read docs here.

  • AWS Serverless Developer Experience Workshop: A day in a life of a developer - This advanced workshop provides you with an immersive experience as a serverless developer, with hands-on experience building a serverless solution using AWS SAM and SAM CLI.

  • The Complete SAM Workshop - This workshop is a great way to experience the power of SAM and SAM CLI.

  • Getting started with CI/CD? SAM pipelines can help you get started - This workshop walks you through the basics.

  • Get started with Serverless Application development using SAM CLI - This workshop walks you through the basics.

Get Started

To get started with building SAM-based applications, use the SAM CLI. SAM CLI provides a Lambda-like execution environment that lets you locally build, test, debug, and deploy AWS serverless applications.

Next Steps: Learn to build a more complex serverless application.

What is this Github repository? 💻

This Github repository contains source code for SAM CLI. Here is the development team talking about this code:

SAM CLI code is written in Python. Source code is well documented, very modular, with 95% unit test coverage. It uses this awesome Python library called Click to manage the command line interaction and uses Docker to run Lambda functions locally. We think you'll like the code base. Clone it and run make pr or ./Make -pr on Windows!

Related Repositories and Resources

Contribute to SAM

We love our contributors ❤️ We have over 100 contributors who have built various parts of the product. Read this testimonial from @ndobryanskyy to learn more about what it was like contributing to SAM.

Depending on your interest and skill, you can help build the different parts of the SAM project;

Enhance the SAM Specification

Make pull requests, report bugs, and share ideas to improve the full SAM template specification. Source code is located on Github at aws/serverless-application-model. Read the SAM Specification Contributing Guide to get started.

Strengthen SAM CLI

Add new commands, enhance existing ones, report bugs, or request new features for the SAM CLI. Source code is located on Github at aws/aws-sam-cli. Read the SAM CLI Contributing Guide to get started.

Update SAM Developer Guide

SAM Developer Guide provides a comprehensive getting started guide and reference documentation. Source code is located on Github at awsdocs/aws-sam-developer-guide. Read the SAM Documentation Contribution Guide to get started.

Join the SAM Community on Slack

Join the SAM developers channel (#samdev) on Slack to collaborate with fellow community members and the AWS SAM team.

Frequently asked questions

Is aws-sam-cli free to use?

aws-sam-cli is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does aws-sam-cli do?

CLI tool to build, test, debug, and deploy Serverless applications using AWS SAM

What is aws-sam-cli written in?

aws-sam-cli is primarily written in Python. Its source is publicly available at https://github.com/aws/aws-sam-cli, and it has 6,733 GitHub stars.