Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWS::Serverless
-Transformation
Die AWS::Serverless
-Transformation, bei der es sich um ein von CloudFormation gehostetes Makro handelt, nimmt eine gesamte Vorlage, die in der AWS Serverless Application Model (AWS SAM)-Syntax geschrieben ist, und transformiert und erweitert sie in eine konforme CloudFormation-Vorlage. Weitere Informationen zu Serverless-Anwendungen und AWS SAM finden Sie unter Bereitstellen von Lambda-basierten Anwendungen im Entwicklerhandbuch für AWS Lambda und der Referenz zu AWS-SAM-Ressourcen und Eigenschaften im Entwicklerhandbuch für AWS Serverless Application Model.
Im folgenden Beispiel verwendet die Vorlage die AWS-SAM-Syntax, um die Deklaration einer Lambda-Funktion und ihre Ausführungsrolle zu vereinfachen.
Transform: AWS::Serverless-2016-10-31 Resources: MyServerlessFunctionLogicalID: Type: AWS::Serverless::Function Properties: Handler: index.handler Runtime: nodejs18.x CodeUri: 's3://testBucket/mySourceCode.zip'
Wenn Sie einen Änderungssatz aus der Vorlage erstellen, erweitert CloudFormation die AWS-SAM-Syntax, wie sie durch die Transformation definiert ist. Die bearbeitete Vorlage erweitert die AWS::Serverless::Function
-Ressource und deklariert eine Funktion AWS Lambda und eine Ausführungsrolle.
{ "Resources": { "MyServerlessFunctionLogicalID": { "Type": "AWS::Lambda::Function", "Properties": { "Handler": "index.handler", "Code": { "S3Bucket": "testBucket", "S3Key": "mySourceCode.zip" }, "Role": { "Fn::GetAtt": ["FunctionNameRole", "Arn"] }, "Runtime": "nodejs18.x" } }, "FunctionNameRole": { "Type": "AWS::IAM::Role", "Properties": { "ManagedPolicyArns": ["arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"], "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [{ "Action": ["sts:AssumeRole"], "Effect": "Allow", "Principal": { "Service": ["lambda.amazonaws.com"] } }] } } } } }
Syntax
Der Wert der Transformationsdeklaration muss eine Literalzeichenfolge sein. Parameter oder Funktionen dürfen nicht zur Angabe eines Transformationswerts verwendet werden. Der folgende Codeausschnitt ist ein Beispiel für die Deklaration einer Transformation:
JSON
"Transform" : "AWS::Serverless-2016-10-31"
YAML
Transform: "AWS::Serverless-2016-10-31"