
Wandelt SAM-Vorlagen in CloudFormation-Ressourcen um und generiert Lambda-Funktionen, IAM-Rollen und Richtlinien mit integrierten Serverless-Best-Practices.
Die AWS Serverless Application Model (AWS SAM) Transform ist eine AWS CloudFormation Macro, die SAM-Vorlagen in CloudFormation-Vorlagen umwandelt.
Um die SAM-Transform zu verwenden, fügen Sie AWS::Serverless-2016-10-31 zum Transform-Abschnitt Ihrer CloudFormation-Vorlage hinzu.
Zu den Vorteilen der Verwendung der SAM-Transform gehören:
Speichern Sie Folgendes als 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);
}
Und stellen Sie es mit der SAM CLI bereit:
sam sync --stack-name sam-app
Die AWS::Serverless::Function-Ressource erstellt eine AWS Lambda-Funktion, die Ereignisse protokolliert, die sie empfängt.
Im Hintergrund wird die Vorlage in das JSON-Äquivalent der folgenden CloudFormation-Vorlage umgewandelt:
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
Eine ausführlichere Einführung finden Sie in diesem Tutorial im Developer Guide.
Sie benötigen eine installierte Python-Version 3.8+.
Erstellen Sie eine virtuelle Umgebung:
python3 -m venv .venv
source .venv/bin/activate
Richten Sie die Abhängigkeiten ein:
make init
Führen Sie die Tests aus:
make pr
Weitere Entwicklungsanweisungen finden Sie in DEVELOPMENT_GUIDE.md und die Richtlinien für Beiträge in CONTRIBUTING.md.
Der beste Weg, mit dem Team zu interagieren, ist über GitHub. Sie können entweder ein Issue erstellen oder eine Diskussion starten.
Sie können auch dem #samdev-Kanal auf Slack beitreten.