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
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:
-
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.
-
Redactar la plantilla: escriba la plantilla en formato JSON o YAML y defina los recursos y sus propiedades.
-
Guardar la plantilla: guarde la plantilla localmente con una extensión de archivo como:
.json,.yamlo.txt. -
Validar la plantilla: valide la plantilla con los métodos descritos en la sección Validación de plantillas.
-
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
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