AWS SAM anatomie du modèle - AWS Serverless Application Model

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.

AWS SAM anatomie du modèle

Un fichier AWS SAM modèle suit de près le format d'un fichier AWS CloudFormation modèle, qui est décrit dans la section Anatomie du modèle dans le guide de AWS CloudFormation l'utilisateur. Les principales différences entre les fichiers AWS SAM modèles et les fichiers AWS CloudFormation modèles sont les suivantes :

  • Déclaration de transformation. La déclaration Transform: AWS::Serverless-2016-10-31 est requise pour les fichiers de modèle AWS SAM . Cette déclaration identifie un fichier AWS CloudFormation modèle en tant que fichier AWS SAM modèle. Pour plus d'informations sur les transformations, consultez Transformation dans ce Guide de l'utilisateur AWS CloudFormation .

  • Section Globales. La Globals section est unique à AWS SAM. Elle définit les propriétés communes à toutes vos fonctions et API sans serveur. Toutes les ressources AWS::Serverless::Function, AWS::Serverless::Api, et AWS::Serverless::SimpleTable héritent des propriétés définies dans la section Globals. Pour plus d'informations sur cette section, consultez Section Globals du modèle AWS SAM.

  • Section Ressources. Dans les AWS SAM modèles, la Resources section peut contenir une combinaison de AWS CloudFormation ressources et de AWS SAM ressources. Pour plus d'informations sur les AWS CloudFormation ressources, consultez la référence aux types de AWS ressources et de propriétés dans le guide de AWS CloudFormation l'utilisateur. Pour plus d'informations sur AWS SAM les ressources, consultezAWS SAM ressources et propriétés.

Toutes les autres sections d'un fichier AWS SAM modèle correspondent à la section du fichier AWS CloudFormation modèle du même nom.

YAML

L'exemple suivant illustre un fragment de modèle au format YAML.

Transform: AWS::Serverless-2016-10-31 Globals: set of globals Description: String Metadata: template metadata Parameters: set of parameters Mappings: set of mappings Conditions: set of conditions Resources: set of resources Outputs: set of outputs

Sections de modèle

AWS SAM les modèles peuvent inclure plusieurs sections principales. Seules les sections Transform et Resources sont requises.

Vous pouvez inclure les sections d'un modèle dans n'importe quel ordre. Toutefois, si vous utilisez des extensions de langue, vous devez les ajouter AWS::LanguageExtensions avant la transformation sans serveur (c'est-à-dire avantAWS::Serverless-2016-10-31) comme indiqué dans l'exemple suivant :

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

Lorsque vous créez votre modèle, il peut être utile d'utiliser l'ordre logique indiqué dans la liste suivante. Cela est dû au fait que les valeurs d'une section peuvent faire référence à des valeurs d'une section précédente.

Transformation (obligatoire)

Pour les AWS SAM modèles, vous devez inclure cette section avec une valeur deAWS::Serverless-2016-10-31.

Les transformations supplémentaires sont facultatives. Pour plus d'informations sur les transformations, consultez Transformation dans ce Guide de l'utilisateur AWS CloudFormation .

Globales (facultatif)

Propriétés qui sont communes à toutes vos fonctions sans serveur, API et tables simples. Toutes les ressources AWS::Serverless::Function, AWS::Serverless::Api, et AWS::Serverless::SimpleTable héritent des propriétés définies dans la section Globals.

Cette section est propre à AWS SAM. Il n'y a pas de section correspondante dans les modèles AWS CloudFormation .

Description (facultative)

Chaîne de texte qui décrit le modèle.

Cette section correspond directement à la Description section des AWS CloudFormation modèles.

Métadonnées (facultatives)

Objets qui fournissent des informations supplémentaires sur le modèle.

Cette section correspond directement à la Metadata section des AWS CloudFormation modèles.

Paramètres (facultatifs)

Les valeurs à transmettre au modèle lors de l'exécution (lorsque vous créez ou mettez à jour une pile). Vous pouvez faire référence aux paramètres dans les sections Resources et Outputs du modèle. Les objets déclarés dans la section Parameters provoquent la commande sam deploy --guided pour présenter des invites supplémentaires à l'utilisateur.

Les valeurs qui sont transmises à l'aide du paramètre --parameter-overrides de la commande sam deploy (et des entrées dans le fichier de configuration) prennent la prépondérance sur les entrées du fichier de modèle AWS SAM . Pour plus d'informations sur la commande sam deploy, consultez sam deploy dans la AWS SAM référence des commandes de la CLI . Pour plus d'informations sur le fichier de configuration, consultez Fichier de configuration CLI AWS SAM.

Mappages (facultatifs)

Mappage de clés et de valeurs associées que vous pouvez utiliser pour spécifier des valeurs de paramètres conditionnelles, comme pour une table de recherche. Pour associer une clé à une valeur correspondante, utilisez la fonction intrinsèque Fn::FindInMap dans les sections Resources et Outputs.

Cette section correspond directement à la Mappings section des AWS CloudFormation modèles.

Conditions (facultatives)

Conditions déterminant si certaines ressources sont créées ou si une valeur est attribuée à certaines propriétés de ressources pendant la création ou la mise à jour de la pile. Par exemple, vous pouvez créer une ressource de manière conditionnelle, laquelle varie selon que la pile est destinée à un environnement de production ou de test.

Cette section correspond directement à la Conditions section des AWS CloudFormation modèles.

Ressources (obligatoires)

Les ressources de la pile et leurs propriétés, telles qu'une instance Amazon Elastic Compute Cloud (Amazon EC2) ou un compartiment Amazon Simple Storage Service (Amazon S3). Vous pouvez faire référence à des ressources dans les sections Resources et Outputs du modèle.

Cette section est semblable à la section Resources des modèles AWS CloudFormation . Dans les AWS SAM modèles, cette section peut contenir des AWS SAM ressources en plus des AWS CloudFormation ressources.

Sorties (facultatives)

Les valeurs qui sont renvoyées chaque fois que vous affichez les propriétés de votre pile. Par exemple, vous pouvez déclarer une sortie pour le nom d'un compartiment S3, puis appeler la commande aws cloudformation describe-stacks AWS Command Line Interface (AWS CLI) pour afficher le nom.

Cette section correspond directement à la section Outputs des modèles AWS CloudFormation .

Étapes suivantes

Pour télécharger et déployer un exemple d'application sans serveur contenant un fichier AWS SAM modèle, consultez Commencer avec AWS SAM et suivez les instructions figurant dansTutoriel : Déployer une application Hello World avec AWS SAM.