Formati di modello - AWS CloudFormation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Formati di modello

Puoi creare CloudFormation modelli nei nostri JSON YAML formati. Entrambi i formati hanno lo stesso scopo ma offrono vantaggi distinti in termini di leggibilità e complessità.

  • JSON— JSON è un formato di interscambio di dati leggero che è facile da analizzare e generare per le macchine. Tuttavia, può diventare complicato per gli esseri umani leggere e scrivere, specialmente per configurazioni complesse. NelJSON, il modello è strutturato utilizzando parentesi {} e parentesi annidate [] per definire risorse, parametri e altri componenti. La sua sintassi richiede una dichiarazione esplicita di ogni elemento, il che può rendere il modello prolisso ma garantisce la stretta aderenza a un formato strutturato.

  • YAML— YAML è progettato per essere più leggibile dall'uomo e meno prolisso di. JSON Utilizza l'indentazione anziché parentesi e parentesi per indicare l'annidamento, il che può semplificare la visualizzazione della gerarchia di risorse e parametri. YAMLè spesso preferito per la sua chiarezza e facilità d'uso, soprattutto quando si tratta di modelli più complessi. Tuttavia, YAML l'affidamento sull'indentazione può portare a errori se la spaziatura non è coerente, il che richiede un'attenzione particolare per mantenere la precisione.

Struttura del modello

CloudFormation i modelli sono suddivisi in diverse sezioni e ogni sezione è progettata per contenere un tipo specifico di informazioni. Alcune sezioni devono essere dichiarate in un ordine specifico, mentre per altre l'ordine non ha importanza. Tuttavia, durante la creazione del modello, può essere utile utilizzare l'ordine logico illustrato negli esempi seguenti, poiché i valori di una sezione potrebbero fare riferimento a valori di una sezione precedente.

Durante la creazione di modelli, non utilizzate sezioni principali duplicate, come la Resources sezione. Sebbene CloudFormation possa accettare il modello, quest'ultimo avrà un comportamento indefinito durante l'elaborazione del modello e potrebbe fornire risorse in modo errato o restituire errori inspiegabili.

JSON

L'esempio seguente mostra la struttura di un modello in JSON formato elettronico con tutte le sezioni disponibili.

{ "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'esempio seguente mostra la struttura di un modello in YAML formato elettronico con tutte le sezioni disponibili.

--- 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

Commenti

Nei modelli JSON -formatted, i commenti non sono supportati. JSON, in base alla progettazione, non include una sintassi per i commenti, il che significa che non è possibile aggiungere commenti direttamente all'interno della struttura. JSON Tuttavia, se hai bisogno di includere note esplicative o documentazione, puoi prendere in considerazione l'aggiunta di metadati. Per ulteriori informazioni, consulta Attributo Metadata.

Nei modelli in YAML formato, è possibile includere commenti in linea utilizzando il simbolo. #

L'esempio seguente mostra un YAML modello con commenti in linea.

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

Specifiche

CloudFormation supporta le seguenti JSON YAML specifiche:

JSON

CloudFormation segue lo JSON standard ECMA -404. Per ulteriori informazioni sul JSON formato, vedere http://www.json.org.

YAML

CloudFormation supporta la specifica della YAML versione 1.1 con alcune eccezioni. CloudFormation non supporta le seguenti funzionalità:

  • I tag binary, omap, pairs, set e timestamp

  • Alias

  • Unioni di hash

Per ulteriori informazioni suYAML, vedere https://yaml.org/.

Ulteriori informazioni

Per ogni risorsa specificata nel modello, ne definisci le proprietà e i valori utilizzando le regole di sintassi specifiche di JSON oYAML. Per ulteriori informazioni sulla sintassi del modello per ogni formato, consulta Sezioni del modello.