Transformation AWS::Serverless - AWS CloudFormation

Il s'agit du nouveau guide AWS CloudFormation de référence des modèles. Veuillez mettre à jour vos favoris et vos liens. Pour obtenir de l'aide pour démarrer CloudFormation, consultez le guide de AWS CloudFormation l'utilisateur.

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

Cette rubrique décrit comment utiliser la AWS::Serverless transformation pour traiter un modèle écrit dans la syntaxe AWS SAM ( AWS Serverless Application Model) et le transformer en un CloudFormation modèle conforme.

Pour plus d'informations sur l'utilisation de la AWS::Serverless transformation, consultez AWS SAM Transform onGitHub.

Utilisation

Pour utiliser la AWS::Serverless transformation, vous devez la déclarer au niveau supérieur de votre CloudFormation modèle. Vous ne pouvez pas utiliser AWS::Serverless comme transformation incorporée dans une autre section de modèle.

La déclaration doit utiliser la chaîne littérale AWS::Serverless-2016-10-31 comme valeur. Vous ne pouvez pas utiliser de paramètre ou de fonction pour spécifier la valeur de transformation.

Syntaxe

Pour déclarer cette transformation dans votre CloudFormation modèle, utilisez la syntaxe suivante :

JSON

{ "Transform":"AWS::Serverless-2016-10-31", "Resources":{ ... } }

YAML

Transform: AWS::Serverless-2016-10-31 Resources: ...

La AWS::Serverless transformation est une déclaration autonome sans paramètres supplémentaires.

Exemples

Les exemples suivants montrent comment utiliser la AWS::Serverless transformation et la AWS SAM syntaxe pour simplifier la déclaration d'une fonction Lambda et son rôle d'exécution.

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'

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é étend la AWS::Serverless::Function ressource en déclarant une fonction Lambda et un rôle d'exécution.

{ "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"] } }] } } } } }

Pour plus d'informations sur les applications sans serveur et le modèle d'application AWS sans serveur (AWS SAM), consultez le guide AWS Serverless Application Model du développeur.

Pour connaître les types de ressources et de propriétés spécifiques à AWS SAM, reportez-vous à la section AWS SAM Ressources et propriétés du Guide du AWS Serverless Application Model développeur.

Pour obtenir des informations générales sur l'utilisation des macros, voir Effectuer un traitement personnalisé sur des CloudFormation modèles à l'aide de modèles de macros dans le Guide de AWS CloudFormation l'utilisateur.