AWS SAM
Installation
AWS SAM provides a commandline tool sam (called the AWS SAM CLI, formerly called SAM Local).
MacOS
Assuming you have homebrew installed:
$ brew tap aws/tap$ brew install aws-sam-cliYou should be able to verify the installation with the --version flag:
sam --versionSAM CLI, version 0.31.1Building
$ sam buildBuild artifacts are created within .aws-sam/build/.
Example
tempate.yaml:
AWSTemplateFormatVersion: '2010-09-09'Transform: AWS::Serverless-2016-10-31Description: >  sam-app
  Sample SAM Template for sam-app
# More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rstGlobals:  Function:    Timeout: 3
Resources:  HelloWorldFunction:    Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction    Properties:      CodeUri: hello_world/      Handler: app.lambda_handler      Runtime: python3.7      Events:        HelloWorld:          Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api          Properties:            Path: /hello            Method: get
Outputs:  # ServerlessRestApi is an implicit API created out of Events key under Serverless::Function  # Find out more about other implicit resources you can reference within SAM  # https://github.com/awslabs/serverless-application-model/blob/master/docs/internals/generated_resources.rst#api  HelloWorldApi:    Description: "API Gateway endpoint URL for Prod stage for Hello World function"    Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/"  HelloWorldFunction:    Description: "Hello World Lambda Function ARN"    Value: !GetAtt HelloWorldFunction.Arn  HelloWorldFunctionIamRole:    Description: "Implicit IAM Role created for Hello World function"    Value: !GetAtt HelloWorldFunctionRole.Arn