En el mundo de AWS, las plantillas de CloudFormation son el alma de la infraestructura como código. Estas plantillas ofrecen la posibilidad de definir y aprovisionar recursos de AWS de una manera organizada y sistemática, en la que los componentes clave están claramente establecidos.
¿Cuál es el propósito de la versión en un Temple?
Los Temples, o plantillas, tienen una versión específica. Si no se define explícitamente, AWS lo hará automáticamente, utilizando la versión 2010-09-09. Este campo, aunque opcional, es importante para garantizar que la plantilla pueda aprovechar todas las funcionalidades más recientes de CloudFormation.
AWSTemplateFormatVersion:'2010-09-09'
¿Para qué sirve la descripción en un Temple?
La descripción es otro campo opcional en las plantillas de CloudFormation. Su principal utilidad es permitirte identificar qué estás desplegando, funcionando como una suerte de metadata personalizada. Es altamente recomendada como una práctica para mejorar la legibilidad y comprensión del Temple.
Description:'Esta es mi primera lambda en CloudFormation'
¿Por qué es relevante la Metadata en un Temple?
La metadata va un paso más allá en complejidad y permite definir registros específicos como Transformaciones, Init, Interfaces y Diseño. Aunque es completamente opcional, en proyectos más avanzados puede ser crucial para lograr ciertos comportamientos deseados. Sin embargo, no la usaremos en nuestro ejemplo.
¿Qué son los Parámetros en un Temple?
Los parámetros son uno de los elementos más vitales en tu plantilla. Son los datos que necesitas pasarle al Temple para personalizar los recursos que vas a desplegar. Te permiten reutilizar una misma plantilla para diferentes configuraciones.
Ejemplo de Parámetro en Lambda:
Para determinar el valor de runtime en una función Lambda, se puede especificar el lenguaje como un parámetro, adaptable según las necesidades.
Los mappings funcionan como arreglos de llave valor que especifican valores específicos para diferentes configuraciones. Se utilizan comúnmente para definir valores diferencias por región.
Ejemplo de Mapping:
Imagina que quieres desplegar un servidor en múltiples regiones como Frankfurt, Sao Paulo, y Virginia. Puedes definir un mapping para cada región con su correspondiente ID de imagen.
Utilizar Descripciones: Aunque opcional, las descripciones clarifican el propósito del código y mejoran la mantenibilidad.
Implementar Parámetros: Facilitan la flexibilidad y reutilización de tus plantillas a lo largo de distintas implementaciones.
Definir Mappings: Estos aceleran la implementación en múltiples regiones, ajustando automáticamente configuraciones para cada caso.
Al emplear estas técnicas y comprender la esencia de cada uno de estos componentes, podrás crear plantillas de CloudFormation eficaces y versátiles, listas para escalar y adaptarse a tus necesidades de infraestructura. ¡Anímate a explorar más sobre CloudFormation y transforma tu manera de desplegar y gestionar recursos en la nube!
TEMPLATES:
• AWSTemplateFormatVersion: “versión date”: Define las capacidades de la plantilla
• Description: String. Texto que describe la plantilla, es opcional.
• Metadata: Información adicional del template. Se pueden crear tres subregistros:
AWS::CloudFormation::Init
AWS::CloudFormation::Interface
AWS::CloudFormation::Designer
• Parameters: Valores que se le pasan al template cuando se crea o actualiza un Stack. Pueden ser referenciados desde Resources u Outputs. Ejemplo:
Parameters:myKeryPair:Description:AmazonEC2KeyPairType: “AWS::EC2::KeyPair::KeyName”mySubnetIDs:Description:SubnetIDsType: “List<AWS::EC2::Subnet::Id>”
DbSubnetIpBlocks:Description: “Comma-delimited list of three CIDR blocks”
Type:CommaDelimitedListDefault: “10.0.48.0/24,10.0.112.0/24,10.0.176.0/24”
DBPort:Default:3306Description:TCP/IP port for the database
Type:NumberMinValue:1150MaxValue:65535DBPwd:NoEcho:trueDescription:The database admin account password
Type:StringMinLength:1MaxLength:41AllowedPattern:^[a-zA-z0-9]*$
• Mappings: Arreglos de llave valor asociados que se usan para agregar parámetros condicionales. Similar a una tabla de búsqueda. Utiliza la función Fn::FindInMap, Ej:
Hola tengo la duda sobre la versión del template, ¿Donde puedo saber que versión colocar ?
Apuntes Templates
Que son los templates ?
Los templates tienen diferentes características que nos ayudaran a desplegar nuestros recursos en AWS entre estos se encuentran
Cual es la anatomia de un tamplate ?
Version de Aws: Este es el versionado de aws, si hay otra version se añadirá nuevas características
Description: Descripción de la plantilla, el que hace.
Metadata: En donde tenemos diferentes parámetros que veremos mas adelante
Parameters: EL mas importante, aquí pondremos nuestros distintos parámetros que se utilizaran para la creación de nuestro recurso, Podemos poner parámetros como el nombre, en el caso de lamda su runtime entre otros
Mappings: estos ayudan a ubicar el servidor en la region que le asignemos
Excelente contenido. Pregunta... Bajo que condiciones AWS puede actualizar la función Lambda que uno a desarrollado?. Lo pregunto por el nivel de confiabilidad que del código que uno haya desarrollado.
Parameters: (opcional)
Definicion de recursos que utilizara cloudformation para el despliegue:
Subnets, rutine, keyPairs, ips, etc.
Metadata: (Opcional)
Init
Interface
designer
Las templates son realmente un gran ahorro de tiempo
increíble :)
La descripción cumple una función similar a un TAG
Una de las claves mas importantes para hacer un plantilla reutilizable es la parametrizacion, cloud formation implementa esto perfectamente con los parametros parameters