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-31est 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
Globalssection est unique à AWS SAM. Il définit les propriétés communes à toutes vos fonctions sans serveur et APIs. Toutes les ressourcesAWS::Serverless::Function,AWS::Serverless::Api, etAWS::Serverless::SimpleTablehé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
Resourcessection 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 globalsDescription:StringMetadata:template metadataParameters:set of parametersMappings:set of mappingsConditions:set of conditionsResources:set of resourcesOutputs: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 communes à toutes vos fonctions sans serveur et tables simples. APIs Toutes les ressources
AWS::Serverless::Function,AWS::Serverless::Api, etAWS::Serverless::SimpleTablehé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
Descriptionsection 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
Metadatasection 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
ResourcesetOutputsdu modèle. Les objets déclarés dans la sectionParametersprovoquent la commande sam deploy --guided pour présenter des invites supplémentaires à l'utilisateur.Les valeurs transmises à l'aide du
--parameter-overridesparamètre de lasam deploycommande, ainsi que les entrées du fichier de configuration, ont priorité sur les entrées du fichier 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::FindInMapdans les sectionsResourcesetOutputs.Cette section correspond directement à la
Mappingssection 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
Conditionssection 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 bucket Amazon Simple Storage Service (Amazon S3). Vous pouvez faire référence à des ressources dans les sections
ResourcesetOutputsdu modèle.Cette section est semblable à la section
Resourcesdes 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-stacksAWS Command Line Interface (AWS CLI) pour afficher le nom.Cette section correspond directement à la section
Outputsdes 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.