
Trasforma i template SAM in risorse CloudFormation, generando funzioni Lambda, ruoli IAM e policy con best practice serverless integrate.
La trasformazione AWS Serverless Application Model (AWS SAM) è una macro AWS CloudFormation che trasforma i modelli SAM in modelli CloudFormation.
Per utilizzare la trasformazione SAM, aggiungi AWS::Serverless-2016-10-31 alla sezione Transform del tuo modello CloudFormation.
I vantaggi dell'utilizzo della trasformazione SAM includono:
Salva quanto segue come 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 distribuiscilo con la SAM CLI:
sam sync --stack-name sam-app
La risorsa AWS::Serverless::Function creerà una funzione AWS Lambda che registra gli eventi che riceve.
Dietro le quinte, il modello viene trasformato nell'equivalente JSON del seguente modello 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
Per un'introduzione più approfondita, consulta questo tutorial nella Guida per lo sviluppatore.
Dovrai avere Python 3.8+ installato.
Crea un ambiente virtuale:
python3 -m venv .venv
source .venv/bin/activate
Configura le dipendenze:
make init
Esegui i test:
make pr
Consulta DEVELOPMENT_GUIDE.md per ulteriori istruzioni di sviluppo e CONTRIBUTING.md per le linee guida sui contributi.
Il modo migliore per interagire con il team è tramite GitHub. Puoi creare un problema oppure avviare una discussione.
Puoi anche unirti al canale #samdev su Slack.