Anatomía de la plantilla - AWS CloudFormation

Anatomía de la plantilla

Una plantilla es un archivo de texto con formato JSON o YAML que describe su infraestructura de AWS. Los siguientes ejemplos muestran la estructura de una plantilla de AWS CloudFormation y sus secciones.

JSON

El siguiente ejemplo muestra un fragmento de código de plantilla con formato JSON.

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

El siguiente ejemplo muestra un fragmento de código de plantilla con formato YAML.

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

Secciones de la plantilla

Las plantillas incluyen varias secciones principales. La sección Resources es la única sección obligatoria. Algunas secciones de una plantilla pueden estar en cualquier orden. Sin embargo, al crear la plantilla, puede ser útil utilizar el orden lógico de la siguiente lista, ya que los valores de una sección podrían estar relacionados con los valores de una sección anterior.

Versión de formato (opcional)

La versión de la plantilla de AWS CloudFormation que cumple la plantilla. La versión de formato de plantilla no es la misma que la versión de la API o WSDL. La versión de formato de plantilla puede cambiar independientemente de las versiones de la API y WSDL.

Descripción (opcional)

Una cadena de texto que describe la plantilla. Esta sección debe seguir siempre la sección de la versión de formato de plantilla.

Metadatos (opcional)

Objetos que proporcionan información adicional acerca de la plantilla.

Parámetros (opcional)

Valores que se van a pasar a su plantilla en tiempo de ejecución (al crear o actualizar una pila). Puede consultar los parámetros en las secciones Resources y Outputs de la plantilla.

Reglas (opcional)

Valida un parámetro o una combinación de parámetros pasados a una plantilla durante la creación de una pila o una actualización de pila.

Mapeos (opcional)

Un mapeo de claves y valores asociados que puede utilizar para especificar valores de parámetros condicionales, similar a una tabla de búsqueda. Puede asociar una clave a un valor correspondiente mediante la función intrínseca Fn::FindInMap en las secciones Resources y Outputs.

Condiciones (opcional)

Condiciones que controlan si determinados recursos se crean o si a determinadas propiedades de recursos se les asigna un valor durante la creación de la pila o la actualización. Por ejemplo, puede crear un recurso condicionalmente que depende de si la pila es para un entorno de prueba o de producción.

Transformación (opcional)

Para aplicaciones sin servidor (también denominadas aplicaciones basadas en Lambda), especifica la versión de AWS Serverless Application Model (AWS SAM) que hay que utilizar. Cuando especifique una transformación, puede utilizar sintaxis de AWS SAM para declarar los recursos en la plantilla. El modelo define la sintaxis que puede utilizar y la forma en la que se procesa.

También puede utilizar las transformaciones AWS::Include para trabajar con fragmentos de código de plantillas almacenados independientemente desde la plantilla de AWS CloudFormation principal. Puede almacenar los archivos de fragmentos de códigos en un bucket de Amazon S3 y, a continuación, volver a utilizar las funciones en varias plantillas.

Recursos (obligatorio)

Especifica los recursos de la pila y sus propiedades, como, por ejemplo, una instancia Amazon Elastic Compute Cloud o un bucket de Amazon Simple Storage Service. Puede consultar los recursos en las secciones Resources y Outputs de la plantilla.

Salidas (opcional)

Describe los valores que se devuelven siempre que ve las propiedades de su pila. Por ejemplo, puede declarar una salida para un nombre de bucket de S3 y, a continuación, llamar al comando de la AWS CLI aws cloudformation describe-stacks para ver el nombre.

nota

Al crear plantillas, no use secciones principales duplicadas, por ejemplo, varias secciones de recursos. Aunque CloudFormation puede aceptar la plantilla, tendrá un comportamiento indefinido al procesarla y puede aprovisionar recursos incorrectamente o devolver errores inexplicables.