View a markdown version of this page

Trabajo con plantillas de CloudFormation - AWS CloudFormation

Trabajo con plantillas de CloudFormation

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.

Puede crear plantillas mediante uno de los siguientes métodos:

  • AWS Infrastructure Composer – una interfaz visual para diseñar plantillas.

  • Editor de texto: escriba plantillas directamente en la sintaxis JSON o YAML.

  • Generador de IaC: genere plantillas a partir de los recursos aprovisionados en su cuenta que CloudFormation no administra actualmente. El generador de IaC funciona con una amplia gama de recursos compatibles con la API de Cloud Control en su región.

En esta sección se proporciona una guía completa sobre cómo utilizar las distintas secciones de una plantilla de CloudFormation y cómo empezar a crear plantillas de pila. Abarca los siguientes temas:

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 Consola de administración de AWS 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. Para obtener más información, consulte Creación de una pila a partir del código fuente del repositorio con sincronización de Git.

Validación de plantillas

Valide sus plantillas antes de la implementación para poder detectar y solucionar los problemas con mayor antelación. El servicio CloudFormation y las herramientas de esta sección comprueban distintas partes de una plantilla. Puede utilizarlas de forma conjunta.

Puede comprobar si una plantilla usa JSON o YAML válidos con el comando validate-template de la CLI o especificando su plantilla en la Consola de administración de AWS. La consola realiza esta comprobación automáticamente. Estas comprobaciones del lado del servicio no ejecutan las comprobaciones adicionales de propiedad, seguridad o prácticas recomendadas que proporcionan las siguientes herramientas:

  • Servidor de lenguaje de CloudFormation: reciba sugerencias, documentación y comentarios sobre la validación mientras escribe plantillas en un editor.

  • CloudFormation Linter: compruebe las propiedades de los recursos, los valores permitidos y los problemas habituales desde la línea de comandos, un editor o una compilación automática.

  • Validación de CloudFormation: ejecute comprobaciones locales y sin conexión desde la línea de comandos o una biblioteca y agregue reglas personalizadas de Rego o Guard. AWS CDK utiliza este validador automáticamente después de sintetizar las plantillas.

  • CloudFormation Guard: redacte reglas de política y compare las plantillas con los requisitos de seguridad, cumplimiento y gobernanza de su organización.

Uso con agentes de codificación de IA

Los agentes de codificación de IA pueden ayudar a crear, validar y solucionar problemas de plantillas de CloudFormation con la habilidad aws-cloudformation del kit de herramientas del agente de AWS en GitHub. Para ver las instrucciones de instalación de , consulte Guía de configuración del agente.

Descripción del alcance de validación

Las herramientas locales comprueban la plantilla y las reglas que les proporcione. No pueden garantizar que la implementación se realice correctamente con los recursos, permisos y cuotas actuales en una Cuenta de AWS y Región de AWS. Antes de la implementación, revise un conjunto de cambios y solucione los problemas notificados por el servicio CloudFormation.

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. Guardar la plantilla: guarde la plantilla localmente con una extensión de archivo como: .json, .yaml o .txt.

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

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

Planee usar la plantilla de referencia de CloudFormation

A medida que vaya redactando las plantillas, encontrará documentación sobre la sintaxis detallada de los distintos tipos de recursos en la referencia de tipos de recursos y propiedades de AWS.

A menudo, las plantillas de pila requieren funciones intrínsecas para asignar valores de propiedad que no están disponibles hasta el tiempo de ejecución y atributos especiales para controlar el comportamiento de los recursos. A medida que redacte la plantilla, consulte los siguientes recursos para obtener orientación:

  • Referencia de funciones intrínsecas: algunas de las funciones intrínsecas más utilizadas incluyen a 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.

  • Referencia de atributos de recursos: algunos de los atributos especiales más utilizados incluyen a las siguientes:

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

Plantillas de ejemplo

CloudFormation proporciona plantillas de pila de código abierto que puede utilizar para empezar. Para obtener más información, consulte CloudFormation Sample Templates en GitHub.

Tenga en cuenta que no se pretende que estas plantillas estén listas para la producción. Debería tomarse el tiempo necesario para aprender cómo funcionan, adaptarlas a sus necesidades y asegurarse de que cumplan con los estándares de cumplimiento de su empresa.

Cada plantilla de este repositorio pasa las comprobaciones de CloudFormation Linter (cfn-lint) y también un conjunto básico de reglas AWS CloudFormation Guard basadas en las 20 principales de Center for Internet Security (CIS), con la excepción de algunas reglas en las que tenía sentido mantener la muestra centrada en un único caso de uso.