
Transforma modelos SAM em recursos do CloudFormation, gerando funções Lambda, funções do IAM e políticas com práticas recomendadas de serverless integradas.
O transform do AWS Serverless Application Model (AWS SAM) é uma macro do AWS CloudFormation que transforma modelos SAM em modelos do CloudFormation.
Para usar o transform do SAM, adicione AWS::Serverless-2016-10-31 à seção Transform do seu modelo do CloudFormation.
Os benefícios de usar o transform do SAM incluem:
Salve o seguinte como 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);
}
E implante-o com o SAM CLI:
sam sync --stack-name sam-app
O recurso AWS::Serverless::Function criará uma função AWS Lambda que registra os eventos que recebe.
Nos bastidores, o modelo é transformado no equivalente em JSON do seguinte modelo do 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
Para uma introdução mais completa, consulte este tutorial no Guia do desenvolvedor.
Você precisará ter o Python 3.8+ instalado.
Crie um ambiente virtual:
python3 -m venv .venv
source .venv/bin/activate
Configure as dependências:
make init
Execute os testes:
make pr
Consulte DEVELOPMENT_GUIDE.md para obter mais instruções de desenvolvimento e CONTRIBUTING.md para as diretrizes de contribuição.
A melhor maneira de interagir com a equipe é pelo GitHub. Você pode criar uma issue ou iniciar uma discussão.
Você também pode entrar no canal #samdev no Slack.