AWS::Serverless-Transformation - AWS CloudFormation

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

Bei der AWS::Serverless Transformation, bei der es sich um ein von gehostetes Makro handelt CloudFormation, wird eine gesamte Vorlage, die in der AWS Serverless Application Model (AWS SAM) -Syntax geschrieben ist, umgewandelt und in eine konforme Vorlage umgewandelt und erweitert. CloudFormation Weitere Informationen zu serverlosen Anwendungen finden Sie unter Deployment Lambda-basierter Anwendungen im AWS Lambda Developer Guide, AWS SAMRessourcen- und Eigenschaftenreferenz im AWS Serverless Application Model Developer Guide und unter Transformation on. AWS SAM AWS SAMGitHub

Im folgenden Beispiel verwendet die Vorlage AWS SAM Syntax, um die Deklaration einer Lambda-Funktion und ihrer Ausführungsrolle zu vereinfachen.

Transform: AWS::Serverless-2016-10-31 Resources: MyServerlessFunctionLogicalID: Type: AWS::Serverless::Function Properties: Handler: index.handler Runtime: nodejs20.x CodeUri: 's3://DOC-EXAMPLE-BUCKET/MySourceCode.zip'

Beim Erstellen eines Änderungssatzes anhand der Vorlage CloudFormation wird die AWS SAM Syntax erweitert, wie sie durch die Transformation definiert wurde. 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": "DOC-EXAMPLE-BUCKET", "S3Key": "MySourceCode.zip" }, "Role": { "Fn::GetAtt": ["FunctionNameRole", "Arn"] }, "Runtime": "nodejs20.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"