top of page
  • Foto del escritorRan Isenberg

Indicadores de funciones inteligentes de AWS Lambda: ahora con condiciones basadas en el tiempo


Indicadores de funciones inteligentes de AWS Lambda: ahora con condiciones basadas en el tiempo
Condiciones de tiempo

Los indicadores de características cambian el comportamiento del servicio en tiempo de ejecución sin tener que volver a implementar el código del servicio. Los indicadores de características pueden mejorar el proceso de CI/CD al habilitar capacidades que de otro modo no serían posibles, lo que los convierte en un facilitador de DevOps y una parte crucial de la integración continua. Sin embargo, eso requiere una implementación de indicadores de características flexible y fácil de usar, como la utilidad de indicadores de características de AWS Lambda Powertools y AWS AppConfig.


Este blog cubre las condiciones de tiempo recientemente agregadas a la utilidad de indicadores de características de AWS Lambda Powertools de código abierto que contribuí y que aprovecha AWS AppConfig.

Aprenderá a definir indicadores de características basados en el tiempo que cambiarán el comportamiento de su servicio en diferentes momentos, horas y días de la semana.

 

Re: gorra

En mi publicación anterior, presenté el valor agregado de usar indicadores de características como parte de su proceso de CI/CD y mostré un SDK de código abierto basado en reglas de indicadores de características que contribuí a AWS Lambda Powertools que aprovecha AWS AppConfig.

Esta publicación asume que está familiarizado con la utilidad de indicadores de características de AWS Lambda Powertools y puede implementar la configuración JSON en AWS AppConfig.


En caso de que no lo estés, no dudes en ver mi charla en la conferencia Conf42 DesSecOps 2022 en el siguiente video:



 

Caso de uso de indicadores de características basados en el tiempo

Antes de esta función, se podían definir reglas con 12 opciones de condiciones posibles.

Puede habilitar funciones para usuarios que formen parte de un nivel, cliente o región específicos, así como cualquier condición de comparación de cadenas o numérica.

Sin embargo, ninguno de ellos incluía condiciones de tiempo.

He estado trabajando con AWS Lambda Powertools en esta función durante algún tiempo para que funcione correctamente y cumpla con los estándares, ¡y finalmente se lanzó en v2.7.0 y está documentado aquí !


Hay tres condiciones basadas en el tiempo y cada una tiene su caso de uso:

  1. Condición de rango de fecha y hora

  2. Condición de los días laborables

  3. Condición de rangos de horas


También puedes mezclarlos y combinarlos y utilizar cualquier otra condición de las 12 condiciones anteriores para crear reglas y casos de uso aún más complejos.

 

Caso de uso de condición de rango de fecha y hora

Supongamos que desea habilitar una función a partir de una fecha precisa y desactivarla automáticamente en una fecha precisa; por ejemplo, desea habilitar una función de descuento de Navidad solo durante las ofertas de los días de Navidad.

La siguiente configuración proporciona este comportamiento:


Si no especifica la zona horaria, se asume que es UTC. Si desea especificar una zona horaria, puede utilizar cualquier zona horaria de IANA (como se especificó originalmente en PEP 615 ) como parte de la definición de sus reglas. Powertools se encarga de convertir y calcular las marcas de tiempo correctas para usted.

El código del controlador de la función Lambda se ve así:

Los indicadores de características de AWS Lambda Powertools compararán el tiempo actual de la función Lambda con las condiciones de INICIO y FIN que definió para evaluar la regla.

 

Caso de uso de condición de días de la semana

Supongamos que desea habilitar una función durante días de la semana específicos; por ejemplo, desea ofrecer un descuento de fin de semana para un evento recurrente. Puede definir días específicos (no intervalos) para habilitar la función; en este caso, solo los sábados y domingos.

La siguiente configuración proporciona este comportamiento:



El código del controlador de la función Lambda se ve así:

Los indicadores de características de AWS Lambda Powertools compararán el día de la función Lambda actual con las condiciones de INICIO y FIN que definió para evaluar la regla.

Aquí también se aplica el mismo formato de zona horaria IANA.

 

Caso de uso de condición de rangos de horas


Supongamos que desea habilitar una función durante horas específicas todos los días; por ejemplo, desea habilitar una función de hora feliz entre las 17:00 y las 19:00 todos los días como un evento recurrente.

La siguiente configuración proporciona este comportamiento:

Supongamos que desea habilitar una función durante horas específicas todos los días; por ejemplo, desea habilitar una función de happy hour entre las 17:00 y las 19:00 todos los días como un evento recurrente. Puede agregar otra condición para los días de fin de semana. La regla coincidirá solo si se cumplen ambas condiciones, es decir, solo cuando sea sábado o domingo Y la hora sea entre las 17:00 y las 19:00, hora de Nueva York. El orden de las condiciones no importa.


La siguiente configuración proporciona este comportamiento:


Y en ambos casos, el código del controlador de la función Lambda se ve así:


Aquí también se aplica el mismo formato de zona horaria de IANA.

Comments


bottom of page