AWS Serverless Application Model(AWS SAM)转换是一个 AWS CloudFormation 宏,可将 SAM 模板 转换为 CloudFormation 模板。
要使用 SAM 转换,请将 AWS::Serverless-2016-10-31 添加到 CloudFormation 模板的 Transform 部分 中。
使用 SAM 转换的好处包括:
将以下内容保存为 template.yaml:
Transform: AWS::Serverless-2016-10-31
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
Runtime: nodejs24.x
Handler: index.handler
InlineCode: |
exports.handler = async (event) => {
console.log(event);
}
然后使用 SAM CLI 部署它:
sam sync --stack-name sam-app
AWS::Serverless::Function 资源将创建一个 AWS Lambda 函数,用于记录其接收到的 事件。
在底层,该模板会被转换为以下 CloudFormation 模板的 JSON 等效形式:
Resources:
MyFunction:
Type: AWS::Lambda::Function
Properties:
Code:
ZipFile: |
exports.handler = async (event) => {
console.log(event);
}
Handler: index.handler
Role: !GetAtt MyFunctionRole.Arn
Runtime: nodejs24.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
你需要安装 Python 3.8 或更高版本。
创建 虚拟环境:
python3 -m venv .venv
source .venv/bin/activate
安装依赖:
make init
运行测试:
make pr
有关进一步的开发说明,请参阅 DEVELOPMENT_GUIDE.md;贡献指南请参阅 CONTRIBUTING.md。
与团队互动的最佳方式是通过 GitHub。你可以创建 Issue 或发起讨论。
你也可以加入 Slack 上的 #samdev 频道。