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
ettimestamp
; -
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.