Desplegar recursos en Stacks anidados es una técnica poderosa que te permite organizar y gestionar tus proyectos con mayor eficiencia y claridad. Imagina tener control sobre funciones Lambda, API Gateway y DynamoDB desde un Stack maestro, logrando así una estructura ordenada y fácil de expandir. Este método te ayuda a reutilizar componentes, lo que es especialmente útil en proyectos de gran escala.
¿Qué es un Stack maestro?
Un Stack maestro en Amazon CloudFormation es un conjunto de recursos agrupados. Permite gestionar múltiples Stacks anidados que son instancias individuales de recursos como bases de datos, funciones Lambda y API Gateway.
Componentes del Stack:
Lambda Function
API Gateway
DynamoDB
El Stack maestro facilita el control centralizado de recursos independientes, permitiendo enviar parámetros a cada uno, incluso si son completamente diferentes.
¿Cómo gestionar dependencias con DependsOn?
Al desplegar APIs o bases de datos, es fundamental controlar el orden de creación de los recursos. Utilizando la propiedad DependsOn, aseguras que ciertos recursos no se creen antes de que los necesarios estén disponibles, lo cual es esencial para evitar errores y mejorar la eficiencia.
¿Cómo estructurar el código para un Stack anidado?
Estructura del Repositorio:
Repositorio con carpeta nested para Stacks anidados.
Código de Lambda en la carpeta lambda_code.
Carga del Código:
Asegúrate de que el bucket S3 está vaciado y luego sube el nuevo código.
Selección y carga de archivos a través de la consola de AWS S3.
Implementación y Configuración:
Clonar el repositorio usando Git:
git clone [URL del repositorio]
Desplegar el template desde el bucket S3 seleccionando Crear Stack en la consola de CloudFormation.
Proveer detalles como el nombre del Stack y parámetros funcionales específicos.
¿Cómo verificar la creación de recursos?
Después de haber creado el Stack maestro y sus Stacks anidados, es crucial verificar que los recursos se hayan creado correctamente.
Consola de DynamoDB: Comprueba la creación correcta de la tabla.
Consola de Lambda: Asegúrate que las funciones se hayan creado y configurado adecuadamente.
Consola de API Gateway: Confirma que las APIs estén conectadas a las funciones Lambda correctas.
Estas verificaciones garantizan que todos los recursos estén listos para su utilización en la aplicación o sistema que estás desarrollando. Además, utilizar Stacks anidados simplifica futuras actualizaciones, permitiendo replicar fácilmente cualquier recurso específico para otros proyectos.
Recuerda siempre optimizar y estructurar tus proyectos considerando la flexibilidad, claridad y reusabilidad de los recursos, lo cual será un valor añadido en tu ámbito profesional. ¡Avanza en tu aprendizaje y mejora continua!
PArece algo tonto, peor no se debe cambiar la URL de los objetos que llamamos dentro de master, ya que el bucket de nuestra practica es distinto al de Carlos, me habia olvidado y fallaba al crear los recursos.
debes de cambiar estas urls dentro del archivo master.yml por la de tu s3. me podrias contar como puedes adjuntar imagenes?
Ya las cambie, después del comentario di con el error. Para adjuntar imágenes solo debes arrastrarlas a la caja de comentarios.
Lo ideal sería explicar cómo crear una plantilla de estas :S
Viendo la estructura de estos archivos, solo pienso que mínimo se debe de tener un conocimiento tan profundo en aws, como los que ya tienen los ingenieros de aws los cuales se encargan de crear desde ceros los productos de aws... haha
Eso se ve en el tema de Anatomia de un template y la clase practica para crearlo.
holaaaa!!! no se olviden de borrar elcloudformation anterior para evitar dolores de cabeza con la facturacion de deportno dejan algo encendido
Para los stacks anidados, no deberian cargarse primero para obtener las urls de estos y agregarlos al master.yml?
Carlos, por favor pronto un Curso de AWS Lambda, ya urge!!
Sin lugar a dudas, en eso si le gana otro tipo de plataformas a Platzi, otras plataformas tienen más variedad de cursos.
El despliegue de recursos con Stacks Anidados (Nested Stacks) en AWS CloudFormation es una técnica poderosa para organizar y reutilizar plantillas de infraestructura como código (IaC). A continuación te explico en qué consisten, cómo se usan y los beneficios clave:
🧩 ¿Qué son los Stacks Anidados en CloudFormation?
Los Nested Stacks son stacks definidos dentro de otro stack principal (parent stack) usando el recurso AWS::CloudFormation::Stack. Permiten modularizar plantillas grandes o complejas dividiéndolas en partes reutilizables.
✅ Ventajas de usar Stacks Anidados
🔁 Reutilización: Puedes usar la misma plantilla en diferentes entornos.
🧼 Organización: Mantienes tu infraestructura modular y más legible.
🔍 Mantenimiento: Actualizaciones más simples al modificar solo un stack hijo.
📏 Límites: Ayudan a superar límites de longitud en plantillas (por línea y tamaño total).
Asegúrate de que la URL en TemplateURL esté pública o accesible desde la cuenta de AWS.
Los parámetros del stack hijo deben definirse correctamente en el stack principal.
Puedes usar salidas (Outputs) en stacks hijos y exportarlas para otros stacks si usas Fn::ImportValue.
Si tengo un neted stack ya desplegado con dynamo, lambda, s3 y sns e hice un cambio en el template de la lambda, me crea de nuevo todos los recursos, o solo el que me modifique?
solo lo que modificas, ejemplo si tienes un nested stack con un template para hacer un deploy de un servicio en ecs y otro template para el rol, y solo cambias una politica del task role, solo modificará eso
Como pruebas estos nested stack en local?
Una pregunta, en el caso de tener varias lambdas que seria lo optimo al usar nested stack, crear un stack por cada lambda o un solo stack para todas las lambdas ? gracias.
Tienes fecha del curso AWS Lambda ??????
por favor comenten cuanto tiempo aprox toma crear el ejercicio. es importante para tener una referencia.
A mi me tardó apróximadamente un minuto y medio
excelente, muy claro la importacia de usar nested stack, se ve un desarrollo mas organizado
:)
User->Route53- API GW- Lambda- DynamoDb
Call on the section Resources to the right URLs of the resources
gracias por el ejemplo :)
Tengo este error cunado esta creando la base de datos de Dynamo:
S3 error: Access Denied For more information check
Ya le di todos los permisos en s3 pero nada
debes de cambiar las urls de los recursos que tomamos del S3
Tengo este error cunado esta creando la base de datos de Dynamo:
S3 error: Access Denied For more information check