Transformation AWS::Serverless - AWS CloudFormation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Transformation AWS::Serverless

La AWS::Serverless transformation, qui est une macro hébergée par CloudFormation, prend un modèle entier écrit dans la syntaxe AWS Serverless Application Model (AWS SAM), le transforme et le développe en un CloudFormation modèle conforme. Pour plus d'informations sur les applications sans serveur AWS SAM, consultez les sections Déploiement d'applications basées sur Lambda dans le guide du AWS Lambda développeur, référence sur les AWS SAM ressources et propriétés dans le guide du AWS Serverless Application Model développeur, et AWS SAM transform on. GitHub

Dans l'exemple suivant, le modèle utilise la AWS SAM syntaxe pour simplifier la déclaration d'une fonction Lambda et son rôle d'exécution.

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

Lorsque vous créez un ensemble de modifications à partir du modèle, CloudFormation développe la AWS SAM syntaxe, telle que définie par la transformation. Le modèle traité développe la ressource AWS::Serverless::Function, en déclarant une fonction AWS Lambda et un rôle d'exécution.

{ "Resources": { "MyServerlessFunctionLogicalID": { "Type": "AWS::Lambda::Function", "Properties": { "Handler": "index.handler", "Code": { "S3Bucket": "amzn-s3-demo-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"] } }] } } } } }

Syntaxe

La valeur de la déclaration de transformation doit être une chaîne littérale. Vous ne pouvez pas utiliser de paramètre ou de fonction pour spécifier la valeur de transformation. L'extrait suivant est un exemple de déclaration de transformation :

JSON

"Transform" : "AWS::Serverless-2016-10-31"

YAML

Transform: "AWS::Serverless-2016-10-31"