En esta publicación, lo guiaré a través de la implementación de configuraciones de AWS AppConfig utilizando AWS Cloud Development Kit (CDK) y las nuevas construcciones de AppConfig L2 (mayor abstracción).
Implementaremos una configuración JSON para el uso de indicadores de características para aplicaciones sin servidor y no sin servidor por igual con el código CDK de Python.
Asegúrese de verificar la última versión del código en el repositorio de plantillas .
Tabla de contenido
Introducción rápida a AppConfig
AWS AppConfig es un servicio autogestionado que almacena configuraciones de TEXTO simple/YAML/JSON para que sean utilizadas por múltiples clientes.
Veamos las ventajas de AppConfig:
Certificado de alto nivel de FedRAMP
Completamente sin servidor
Soporte listo para usar para validaciones de esquema que se ejecutan antes de una actualización de configuración.
La integración inmediata con las alarmas de AWS CloudWatch activa una reversión automática de la configuración si una actualización de configuración hace que las funciones de AWS Lambda fallen. Obtenga más información aquí .
Puede definir estrategias de implementación de configuración. Las estrategias de implementación definen cómo y cuándo cambiar una configuración. Lea más sobre esto aquí .
Proporciona una única API que obtiene la configuración.
Si ha leído mis publicaciones anteriores de AppConfig, sabrá que uso la utilidad de indicadores de características de AWS Lambda Powertools. para obtener y evaluar configuraciones de AppConfig.
Nuestro objetivo
Nuestro objetivo es implementar una configuración de formato libre JSON que podamos usar con la utilidad de indicadores de características de AWS Lambda Powertools.
La construcción que presento aquí implementará una configuración JSON en AppConfig como una configuración de forma libre con una estrategia de implementación de tiempo de espera cero.
Para las cuentas de producción, debe utilizar un perfil de implementación canario y configurar validaciones JSON y una alarma de CloudWatch para activar una reversión automática en caso de errores de servicio durante la implementación de la configuración.
Si quieres aprender sobre las mejores prácticas para los indicadores de características y cómo usarlos, crearlos y probarlos, consulta mis dos publicaciones sobre ellos:
Sigamos adelante y escribamos algo de código.
Dependencias de Python
Para consumir la nueva construcción L2, que contiene mejores abstracciones, agregue las siguientes declaraciones a su archivo de poesía:
Tenga en cuenta que estamos utilizando una construcción alfa, que puede fallar o contener errores. Úsela a su discreción. Sin embargo, después de probarla, puedo confirmar que funciona como se esperaba al momento de escribir este artículo y ya es parte del proyecto AWS Lambda Handler Cookbook.
Construcción de configuración
Repasemos mi nueva construcción, que utiliza construcciones de abstracciones superiores L2, reduciendo así el esfuerzo general para definir configuraciones de AppConfig:
Nuestro constructo requiere varios parámetros de entrada:
id_ (str): El identificador de la construcción con ámbito. Debe ser único.
Entorno (str): Nombre del entorno de AppConfig a crear.
service_name (str): Nombre de la aplicación AppConfig que se creará.
configuration_name (str): Nombre de configuración de AppConfig a crear.
configuration_str (str): contenido de configuración de AppConfig para crear
En las líneas 33 a 40, creamos la aplicación AppConfig; en la línea 40, establecemos la política de eliminación como destroy. Se aplicará un enfoque similar a todos los recursos.
En las líneas 41 a 48, definimos el entorno de AWS AppConfig.
En las líneas 51 a 61, definimos la estrategia de implementación de AppConfig. Elegí una implementación inmediata (cero minutos para los tiempos de preparación e implementación), pero debes usar las opciones de implementación de Canary o definir las tuyas propias para las cargas de trabajo de producción. Lee la documentación aquí .
En las líneas 63-75, definimos la configuración para implementar y conectar todos los recursos.
Observe cómo elegí la línea 69, el tipo de formato libre. Debe utilizar formato libre para utilizarlo con la utilidad de indicadores de funciones de Powertools.
En la línea 68, proporcionamos la cadena de configuración que obtuvimos como parámetro de entrada de construcción.
La línea 75 es una solución alternativa hasta que la política de eliminación se configure y exponga correctamente (consulte el enlace al problema del CDK).
En resumen:
Las nuevas construcciones L2 son una edición bienvenida ya que reducen la cantidad total de código y la complejidad general, pero le sugiero que cree su propia construcción que envuelva estas construcciones L2 en una o use el ejemplo que proporcioné aquí.
Para obtener más información y conectar funciones avanzadas como validadores JSON, extensiones y alarmas de CloudWatch, consulte la documentación oficial a continuación:
Comments