rights reserved. Luis Colon (@luiscolon1) Senior Developer Advocate (Evangelista) AWS CloudFormation Request English version via email [email protected] 13.02.2019 Usando Macros con CloudFormation Febrero 2019
rights reserved. CloudFormation • Administrar (crear, actualizar, limpiar) recursos en AWS • Provee un lenguaje común para create recursos y describir el estado deseado • Entiende dependencias • Provee estabilización y rollbacks Codifica plantillas en YAML/JSON o usar plantillas de muestra Cargar archivos de plantillas localmente o desde un cubo S3 Crea pilas usando la consola de administración, o API, o CLI Las pilas y los recursos quedan aprovisionados y estabilizados
rights reserved. Opciones de Codificación Nivel Alto Nivel Bajo • AWS CDK (ahora en “developer preview"), Pulumi (independiente) • Se mantiene al nivel alto, vs. los “traductores” (DSLs) • El CDK traduce a plantillas de CloudFormation también, mientras Pulumi no Imperativo • Troposphere (Python), SparkleFormation (Ruby), GoFormation (Go) • Aprovecha los controles de flujo de los lenguajes de nivel superior • Generación de plantillas de CloudFormation (en estos casos) Idiomas específicos (DSLs) • CloudFormation (con o sin macros), modulos de Terraform • Declara el estado deseado, el sistema encuentra la ruta para llegar a ese estado • Abstracción y control de flujo son posibles, pero limitados Declarativo • Usando AWS SDKs & CLIs • Paso a paso, instrucciones especificas • Manejo de errores y actualizaciones de estado dejadas al autor Mas manual
rights reserved. Macros • Permite escribir código abreviado que expande automáticamente cuando la plantilla se implementa • Crear funciones y utilidades, “loops”, manejar texto, asegurar que sus recursos cumplen con estándares • Facil de reutilizar y compartir en pilas y plantillas • Usuarios de macros se pueden aislar de los detalles del código • Son funciones Lambda, y pueden ser escritos en cualquier lenguaje compatible con Lambda • Macros son transformaciones, similar a SAM (Serverless Application Model)
rights reserved. • Ejemplos: • https://github.com/awslabs/aws-cloudformation-templates/ tree/master/aws/services/CloudFormation/MacrosExamples • Otros ejemplos: • https://github.com/KablamoOSS/cfn-macros • Comunidad CloudFormation en Slack • awsdevelopers.slack.com • Envie email a @luiscolon1 en Twitter Enlaces