Componentes de Plantillas en CloudFormation: Funciones y Parámetros

Clase 6 de 38Curso de Infraestructura Como Código en AWS

Resumen

¿Qué es un Temple en CloudFormation?

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.

Parameters:
  Runtime:
    Type: String
    Default: 'Python3.8'
    AllowedValues:
      - 'Python3.6'
      - 'Python3.7'
      - 'Python3.8'
      - 'Java8'

¿Cómo funcionan los mappings en un Temple?

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.

Mappings:
  RegionMap:
    us-east-1:
      "AMIID": "ami-0ff8a91507f77f867"
    eu-west-1:
      "AMIID": "ami-047bb4163c506cd98"

Recomendaciones prácticas

  1. Utilizar Descripciones: Aunque opcional, las descripciones clarifican el propósito del código y mejoran la mantenibilidad.

  2. Implementar Parámetros: Facilitan la flexibilidad y reutilización de tus plantillas a lo largo de distintas implementaciones.

  3. 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!