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 ressourcesAWS::Serverless::Function
,AWS::Serverless::Api
, etAWS::Serverless::SimpleTable
héritent des propriétés définies dans la sectionGlobals
. 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 de
AWS::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
, etAWS::Serverless::SimpleTable
héritent des propriétés définies dans la sectionGlobals
.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
etOutputs
du modèle. Les objets déclarés dans la sectionParameters
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 commandesam 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 commandesam 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 AWS SAM CLI Fichier de configuration . - 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 sectionsResources
etOutputs
.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
etOutputs
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.