Dies ist der neue AWS CloudFormation Vorlagen-Referenzleitfaden. Bitte aktualisieren Sie Ihre Lesezeichen und Links. Hilfe zu den ersten CloudFormation Schritten finden Sie im AWS CloudFormation Benutzerhandbuch.
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
In diesem Thema wird beschrieben, wie Sie die AWS::Serverless
Transformation verwenden, um eine in der AWS SAM-Syntax ( AWS Serverless Application Model) geschriebene Vorlage zu verarbeiten und sie in eine konforme CloudFormation Vorlage umzuwandeln.
Weitere Informationen zur Verwendung der AWS::Serverless
Transformation finden Sie unter AWS SAM Transform
Verwendung
Um die AWS::Serverless
Transformation verwenden zu können, müssen Sie sie auf der obersten Ebene Ihrer CloudFormation Vorlage deklarieren. Sie können AWS::Serverless
nicht als Transformation verwenden, die in einem anderen Vorlagenabschnitt eingebettet ist.
Die Deklaration muss die Literalzeichenfolge AWS::Serverless-2016-10-31
als Wert verwenden. Parameter oder Funktionen dürfen nicht zur Angabe eines Transformationswerts verwendet werden.
Syntax
Verwenden Sie die folgende Syntax, um diese Transformation in Ihrer CloudFormation Vorlage zu deklarieren:
JSON
{ "Transform":"AWS::Serverless-2016-10-31", "Resources":{
...
} }
YAML
Transform: AWS::Serverless-2016-10-31 Resources:
...
Die AWS::Serverless
Transformation ist eine eigenständige Deklaration ohne zusätzliche Parameter.
Beispiele
Die folgenden Beispiele zeigen, wie die AWS::Serverless
Transformation und die AWS SAM Syntax verwendet werden können, um die Deklaration einer Lambda-Funktion und ihrer Ausführungsrolle zu vereinfachen.
JSON
{ "Transform":"AWS::Serverless-2016-10-31", "Resources":{ "MyFunction":{ "Type":"AWS::Serverless::Function", "Properties":{ "Handler":"
index.handler
", "Runtime":"nodejs20.x
", "CodeUri":"s3://amzn-s3-demo-bucket/MySourceCode.zip
" } } } }
YAML
Transform: AWS::Serverless-2016-10-31 Resources: MyFunction: Type: AWS::Serverless::Function Properties: Handler:
index.handler
Runtime:nodejs20.x
CodeUri: 's3://amzn-s3-demo-bucket/MySourceCode.zip
'
Beim Erstellen eines Änderungssatzes anhand der Vorlage wird die AWS SAM Syntax, wie sie durch die Transformation definiert wurde, CloudFormation erweitert. Die verarbeitete Vorlage erweitert die AWS::Serverless::Function
Ressource und deklariert eine Lambda-Funktion und eine Ausführungsrolle.
{ "Resources": { "MyFunction": { "Type": "AWS::Lambda::Function", "Properties": { "Handler": "
index.handler
", "Code": { "S3Bucket": "amzn-s3-demo-bucket
", "S3Key": "MySourceCode.zip
" }, "Role": { "Fn::GetAtt": ["MyFunctionRole", "Arn"] }, "Runtime": "nodejs20.x
" } }, "MyFunctionRole": { "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"] } }] } } } } }
Verwenden von AWS::Serverless
mit AWS::LanguageExtensions
Wenn AWS::Serverless
sowohl als auch AWS::LanguageExtensions
Transformationen verwendet werden, AWS::ApiGateway::Stage
erfordert das Referenzieren von Ressourcen eine spezielle Syntax, wenn der Phasenname als Wert übergeben wird, der kein Parameter ist. NoEcho
Verwenden Sie, anstatt die AWS SAM Syntax für die Referenz (
) MyApi
.StageFn::Sub
zu verwenden, um die logische ID-Referenz zu generieren. Beispiel, "Ref": {"Fn::Sub":
. Dadurch wird zur Laufzeit die richtige logische ID erstellt."${
${MyApi
}StageName
}Stage"}
Der Grund für dieses spezielle Format liegt darin, dass diese beiden Transformationen Werte unterschiedlich behandeln:
-
AWS::LanguageExtensions
löst intrinsische Funktionen in ihre tatsächlichen Werte auf. -
AWS::Serverless
erzeugt unterschiedliche logische Werte, IDs je nachdem, ob sie einen statischen Wert oder eine intrinsische Funktion empfängt.
Zugehörige Ressourcen
Informationen zu den spezifischen Ressourcen- und Eigenschaftstypen finden Sie unter AWS SAM Ressourcen und Eigenschaften im AWS Serverless Application Model Entwicklerhandbuch. AWS SAM
Allgemeine Informationen zur Verwendung von Makros finden Sie im AWS CloudFormation Benutzerhandbuch unter Durchführen einer benutzerdefinierten Verarbeitung von CloudFormation Vorlagen mit Vorlagenmakros.