
Transforme les modèles SAM en ressources CloudFormation, générant des fonctions Lambda, des rôles IAM et des politiques avec des bonnes pratiques serverless intégrées.
La transformation AWS Serverless Application Model (AWS SAM) est une macro AWS CloudFormation qui transforme les modèles SAM en modèles CloudFormation.
Pour utiliser la transformation SAM, ajoutez AWS::Serverless-2016-10-31 à la section Transform de votre modèle CloudFormation.
Les avantages de l'utilisation de la transformation SAM sont les suivants :
Enregistrez ce qui suit sous le nom 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);
}
Et déployez-le avec la SAM CLI :
sam sync --stack-name sam-app
La ressource AWS::Serverless::Function créera une fonction AWS Lambda qui consigne les événements qu'elle reçoit.
En interne, le modèle est transformé en l'équivalent JSON du modèle CloudFormation suivant :
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
Pour une introduction plus approfondie, consultez ce tutoriel dans le Guide du développeur.
Vous devez avoir Python 3.8+ installé.
Créez un environnement virtuel :
python3 -m venv .venv
source .venv/bin/activate
Installez les dépendances :
make init
Exécutez les tests :
make pr
Consultez DEVELOPMENT_GUIDE.md pour des instructions de développement supplémentaires, et CONTRIBUTING.md pour les directives de contribution.
Le meilleur moyen d'interagir avec l'équipe est GitHub. Vous pouvez soit créer une issue, soit lancer une discussion.
Vous pouvez également rejoindre le canal #samdev sur Slack.