Descripción general de la plantilla - AWS CloudFormation

Descripción general de la plantilla

Una plantilla de AWS CloudFormation define los recursos de AWS que desea crear, actualizar o eliminar como parte de una pila. Tiene varias secciones, pero la única necesaria es la sección de Resources, que debe declarar al menos un recurso.

El archivo de plantilla sigue reglas de formato específicas con el estándar Notación de objetos JavaScript (JSON) o YAML. JSON es más detallado y rígido, mientras que YAML es más legible y flexible. Para obtener más información, consulte Formatos de plantilla.

Dónde se almacenan las plantillas

Bucket de Amazon S3

Puede almacenar plantillas de CloudFormation en un bucket de Amazon S3. Al crear o actualizar una pila, puede especificar la URL de S3 de la plantilla en lugar de cargarla directamente.

Si carga las plantillas directamente a través de AWS Management Console o AWS CLI, automáticamente se creará un bucket de S3. Para obtener más información, consulte Creación de una pila en la consola de CloudFormation.

Repositorio de Git

Con la sincronización de Git, puede almacenar plantillas en un repositorio de Git. Al crear o actualizar una pila, puede especificar la ubicación y la rama del repositorio de Git que contiene la plantilla en lugar de subirla directamente o referenciar a una URL de S3. CloudFormation supervisa automáticamente el repositorio y la rama especificados para detectar cambios en las plantillas.

Validación de plantillas

Validación de la sintaxis

Puede comprobar la sintaxis JSON o YAML de la plantilla con el comando validate-template de la CLI o al especificar la plantilla en la consola. La consola realiza la validación automáticamente. Sin embargo, estos métodos solo verifican la sintaxis de la plantilla y no validan los valores de propiedad que especificó para un recurso.

Herramientas de validación adicionales

Para validaciones más complejas y comprobaciones de prácticas recomendadas, puede usar herramientas adicionales como:

  • CloudFormation Linter (cfn-lint): valida las plantillas con los esquemas del proveedor de recursos. Incluye comprobar los valores válidos de las propiedades de los recursos y las prácticas recomendadas.

  • CloudFormation Rain (rain fmt): formatea sus plantillas de CloudFormation según un estándar coherente o cambia el formato de una plantilla de JSON a YAML (o de YAML a JSON). Conserva los comentarios cuando se usa YAML y, siempre que sea posible, cambia el uso de funciones intrínsecas a una sintaxis corta.

Introducción a las plantillas

Para empezar a crear una plantilla de CloudFormation, siga estos pasos:

  1. Elegir los recursos: identifique los recursos de AWS que desea incluir en su pila, como las instancias de EC2, las VPC, los grupos de seguridad, etc.

  2. Redactar la plantilla: escriba la plantilla en formato JSON o YAML y defina los recursos y sus propiedades.

  3. Validar la plantilla: valide la plantilla con los métodos descritos en la sección Validación de plantillas.

  4. Crear una pila: cree una pila con la plantilla validada.

Recursos adicionales de

  • El recurso Referencia de tipos de recursos y propiedades de AWS brinda la sintaxis para declarar diferentes tipos de recursos.

  • El recurso Referencia de función intrínseca documenta las funciones que puede usar para llevar a cabo tareas, como unir cadenas o hacer referencia a otros recursos de sus plantillas. Entre las funciones intrínsecas más utilizadas, se incluyen las siguientes:

    • Ref: recupera el valor del parámetro o el ID físico de un recurso.

    • Sub: sustituye los marcadores de posición de las cadenas por valores reales.

    • GetAtt: devuelve el valor de un atributo de un recurso de la plantilla.

    • Join: une un conjunto de valores en una sola cadena.

  • El recurso Referencia de atributos personalizados documenta los atributos especiales que se pueden utilizar, entre los que se incluyen:

    • DependsOn: use este atributo para especificar que un recurso debe crearse después de otro.

    • DeletionPolicy: use este atributo para especificar cómo debe manejar CloudFormation la eliminación de un recurso.

    • Metadata: use este atributo para especificar datos estructurados con un recurso.