
Преобразует шаблоны SAM в ресурсы CloudFormation, создавая функции Lambda, роли IAM и политики со встроенными лучшими практиками serverless.
Преобразование AWS Serverless Application Model (AWS SAM) — это макрос AWS CloudFormation, который преобразует шаблоны SAM в шаблоны CloudFormation.
Чтобы использовать преобразование SAM, добавьте AWS::Serverless-2016-10-31 в раздел Transform вашего шаблона CloudFormation.
Преимущества использования преобразования 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, которая записывает в журнал получаемые события.
Под капотом шаблон преобразуется в JSON-эквивалент следующего шаблона CloudFormation:
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, либо начать обсуждение.
Вы также можете присоединиться к каналу #samdev в Slack.