Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

The AWS Serverless Application Model (AWS SAM) transform is a AWS CloudFormation macro that transforms SAM templates into CloudFormation templates.

License

Notifications You must be signed in to change notification settings

aws/serverless-application-model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

AWS SAM transform

Tests Update schema PyPI PyPI - Python Version Contribute with Gitpod

The AWS Serverless Application Model (AWS SAM) transform is a AWS CloudFormation macro that transforms SAM templates into CloudFormation templates.

To use the SAM transform, add AWS::Serverless-2016年10月31日 to the Transform section of your CloudFormation template.

Benefits of using the SAM transform include:

  • Built-in best practices and sane defaults.
  • Local testing and debugging with the AWS SAM CLI.
  • Extension of the CloudFormation template syntax.

Getting started

Save the following as template.yaml:

Transform: AWS::Serverless-2016年10月31日
Resources:
 MyFunction:
 Type: AWS::Serverless::Function
 Properties:
 Runtime: nodejs18.x
 Handler: index.handler
 InlineCode: |
 exports.handler = async (event) => {
 console.log(event);
 }

And deploy it with the SAM CLI:

sam sync --stack-name sam-app

The AWS::Serverless::Function resource will create a AWS Lambda function that logs events it receives.

Under the hood, the template is transformed into the JSON equivalent of the following CloudFormation template:

Resources:
 MyFunction:
 Type: AWS::Lambda::Function
 Properties:
 Code:
 ZipFile: |
 exports.handler = async (event) => {
 console.log(event);
 }
 Handler: index.handler
 Role: !GetAtt MyFunctionRole.Arn
 Runtime: nodejs18.x
 Tags:
 - Key: lambda:createdBy
 Value: SAM
 MyFunctionRole:
 Type: AWS::IAM::Role
 Properties:
 AssumeRolePolicyDocument:
 Version: "2012年10月17日"
 Statement:
 - Action:
 - sts:AssumeRole
 Effect: Allow
 Principal:
 Service:
 - lambda.amazonaws.com
 ManagedPolicyArns:
 - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
 Tags:
 - Key: lambda:createdBy
 Value: SAM

For a more thorough introduction, see the this tutorial in the Developer Guide.

Contributing

Setting up development environment

You'll need to have Python 3.8+ installed.

Create a virtual environment:

python3 -m venv .venv
source .venv/bin/activate

Set up dependencies:

make init

Run tests:

make pr

See DEVELOPMENT_GUIDE.md for further development instructions, and CONTRIBUTING.md for the contributing guidelines.

Getting help

The best way to interact with the team is through GitHub. You can either create an issue or start a discussion.

You can also join the #samdev channel on Slack.

Learn more

Workshops and tutorials

Documentation

About

The AWS Serverless Application Model (AWS SAM) transform is a AWS CloudFormation macro that transforms SAM templates into CloudFormation templates.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Languages

AltStyle によって変換されたページ (->オリジナル) /