CloudFormation format de modèle - 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.

CloudFormation format de modèle

Vous pouvez créer CloudFormation des modèles dans JSON ou YAML formats. Les deux formats ont le même objectif mais offrent des avantages distincts en termes de lisibilité et de complexité.

  • JSON— JSON est un format d'échange de données léger, facile à analyser et à générer pour les machines. Cependant, il peut devenir difficile pour les humains de lire et d'écrire, en particulier pour les configurations complexes. DansJSON, le modèle est structuré à l'aide d'accolades {} imbriquées [] pour définir les ressources, les paramètres et les autres composants. Sa syntaxe nécessite une déclaration explicite de chaque élément, ce qui peut rendre le modèle verbeux tout en garantissant le strict respect d'un format structuré.

  • YAML— YAML est conçu pour être plus lisible par l'homme et moins verbeux que. JSON Il utilise une indentation plutôt que des accolades pour indiquer l'imbrication, ce qui permet de visualiser plus facilement la hiérarchie des ressources et des paramètres. YAMLest souvent préféré pour sa clarté et sa facilité d'utilisation, en particulier lorsqu'il s'agit de modèles plus complexes. Cependant, le recours à YAML l'indentation peut entraîner des erreurs si l'espacement n'est pas constant, ce qui nécessite une attention particulière pour maintenir la précision.

Structure du modèle

CloudFormation les modèles sont divisés en différentes sections, et chaque section est conçue pour contenir un type d'information spécifique. Certaines sections doivent être déclarées dans un ordre précis, tandis que pour d'autres, l'ordre n'a pas d'importance. Cependant, lorsque vous créez votre modèle, il peut être utile d'utiliser l'ordre logique indiqué dans les exemples suivants, car les valeurs d'une section peuvent faire référence à des valeurs d'une section précédente.

Lorsque vous créez des modèles, n'utilisez pas de sections principales dupliquées, telles que la Resources section. Bien qu'il soit CloudFormation possible d'accepter le modèle, celui-ci aura un comportement indéfini lors du traitement du modèle et risque de fournir des ressources de manière incorrecte ou de renvoyer des erreurs inexplicables.

JSON

L'exemple suivant montre la structure d'un modèle JSON formaté avec toutes les sections disponibles.

{ "AWSTemplateFormatVersion" : "version date", "Description" : "JSON string", "Metadata" : { template metadata }, "Parameters" : { set of parameters }, "Rules" : { set of rules }, "Mappings" : { set of mappings }, "Conditions" : { set of conditions }, "Transform" : { set of transforms }, "Resources" : { set of resources }, "Outputs" : { set of outputs } }

YAML

L'exemple suivant montre la structure d'un modèle YAML formaté avec toutes les sections disponibles.

--- AWSTemplateFormatVersion: version date Description: String Metadata: template metadata Parameters: set of parameters Rules: set of rules Mappings: set of mappings Conditions: set of conditions Transform: set of transforms Resources: set of resources Outputs: set of outputs

Commentaires

Dans les modèles JSON formatés, les commentaires ne sont pas pris en charge. JSON, de par sa conception, n'inclut pas de syntaxe pour les commentaires, ce qui signifie que vous ne pouvez pas ajouter de commentaires directement dans la JSON structure. Toutefois, si vous devez inclure des notes explicatives ou de la documentation, vous pouvez envisager d'ajouter des métadonnées. Pour de plus amples informations, veuillez consulter Attribut Metadata.

Dans les modèles YAML formatés, vous pouvez inclure des commentaires intégrés à l'aide du symbole. #

L'exemple suivant montre un YAML modèle avec des commentaires intégrés.

AWSTemplateFormatVersion: 2010-09-09 Description: A sample CloudFormation template with YAML comments. # Resources section Resources: MyEC2Instance: Type: AWS::EC2::Instance Properties: # Linux AMI ImageId: ami-1234567890abcdef0 InstanceType: t2.micro KeyName: MyKey BlockDeviceMappings: - DeviceName: /dev/sdm Ebs: VolumeType: io1 Iops: 200 DeleteOnTermination: false VolumeSize: 20

Spécifications

CloudFormation prend en charge les éléments suivants JSON et YAML les spécifications :

JSON

CloudFormation suit la JSON norme ECMA -404. Pour plus d'informations sur le JSON format, consultez http://www.json.org.

YAML

CloudFormation prend en charge la spécification de la YAML version 1.1 à quelques exceptions près. CloudFormation ne prend pas en charge les fonctionnalités suivantes :

  • les balises binary, omap, pairs, set et timestamp ;

  • Alias

  • les fusions de hachage.

Pour plus d'informations surYAML, consultez https://yaml.org/.

En savoir plus

Pour chaque ressource que vous spécifiez dans votre modèle, vous définissez ses propriétés et ses valeurs à l'aide des règles de syntaxe spécifiques de l'un JSON ou de l'autreYAML. Pour plus d'informations sur la syntaxe des modèles pour chaque format, consultez CloudFormation sections du modèle.