AWS Step Functions II: Integración con DecisionRules: Aplicación Real

En la primera parte de este artículo, profundizamos en cuanto a las AWS Step Functions, y como utilizarlas, en esta segunda parte ampliaremos en cuanto a su integración con DecisionRules al momento de automatizar procesos de toma de decisiones.

David Janata
Desarrollador Fullstack
?
Integraciones
Check icon A checkmark inside a circle signifying "yes" Minus icon A minus inside a circle signifying "no" PROS Icon A plus symbol representing positive aspects or benefits. CONS Icon A minus symbol representing negative aspects or drawbacks.

Partiendo de los conceptos tratados en la Parte I, donde presentamos el rol de AWS Step Functions en la orquestación de flujos de trabajo complejos y la automatización de procesos de tomas de decisiones, la Parte II profundiza en una aplicación práctica mediante la integración de DecisionRules.io para la toma de decisiones dinámica, mejorado con datos en tiempo real de la API Open Weather. Esta integración ejemplifica como AWS Step Functions puede administrar lógicas y decisiones complejas basadas en condiciones externas, mostrando el uso de esta tecnología en un escenario que requiere precisión y adaptabilidad. 

Caso: Flujo de trabajo de una empresa de catering

Imagina un negocio de catering que necesita ajustar sus operaciones dinámicamente en función de las condiciones meteorológicas. La máquina de estados proporcionada representa un flujo de trabajo sencillo que combina la recuperación de datos meteorológicos con procesos de toma de decisiones facilitados por DecisionRules. Esta configuración permite a la empresa tomar decisiones informadas sobre la planificación de eventos, selección de menús, y los arreglos logísticos, todo ello adaptado a las previsiones meteorológicas. También gestiona reservas de los locales y crea facturas utilizando AWS Lambdas, el cual interactúa con el sistema de gestión de la empresa.

¿Qué necesitarás?

  • Una cuenta con subscripción a AWS e idealmente permisos de Administrador. 
  • Un rol para tu máquina de estados con los siguientes permisos:some text
    • para invocar funciones Lambda 
    • para invocar puntos finales HTTP y recuperar credenciales a través de Amazon EventBridge
    • para acceder a AWS Secrets Manager (Utilizado por API Gateway para almacenar tokens de portador y otra información confidencial.)
    • Permisos de funciones generales (Iniciar ejecución, Describir ejecución, etc…) 

El Flujo de Trabajo

La máquina de estados comienza estableciendo una conexión con la API Open-Meteo para obtener la previsión del clima, transforma los datos devueltos para crear un cuerpo de solicitud para DecisionRules, así como las dos funciones Lambda. A continuación, estos datos informan los pasos posteriores de la toma de decisiones, donde la lógica empresarial, administrada por DecisionRules.io, determina el equipo necesario para el evento en particular. La entrada a esta máquina de estado es un simple esquema JSON en el que proporcionamos la fecha del evento, así como la latitud y longitud del local.

La ejecución comienza, siguiendo los pasos a continuación:

1. Obteniendo los Datos Meteorológicos

El proceso comienza con el estado "Create API Endpoint", el cual configura el punto final para la API Open-Meteo. Siguiendo esta configuración, el estado “Call Weather API” recupera la previsión meteorológica para la fecha y ubicación especificadas, garantizando que el proceso de toma de decisiones se base en la información meteorológica más actualizada y pertinente. Esta información se recibe en forma de un código meteorológico que puede interpretarse utilizando la documentación de Open-Meteo. La solicitud de los datos de entrada tiene el siguiente formato:

2. Creación de cuerpos de solicitud

Tras obtener la previsión meteorológica, la máquina de estados pasa al estado "Create Request Body", donde prepara la entrada para DecisionRules.io basándose en los datos meteorológicos. En este estado de paso procesamos la respuesta de la API meteorológica y transformamos los datos en preparación del cuerpo de la solicitud para DecisionRules, y es aquí donde preparamos las solicitudes para cualquier otro servicio o resolución de regla que queremos ejecutar en el siguiente estado paralelo, denominado “Process Order”.

A continuación mostramos una representación del Amazon State Language del estado “Get items based on weather code”.

3. Ejecución paralela para toma de decisiones exhaustiva 

El núcleo de esta máquina de estados reside en su estado "Process Order”, el cual muestra la ejecución concurrente de múltiples tareas, cada una aprovechando a DecisionRules.io para diferentes aspectos de la planificación de eventos. La capacidad del procesamiento en paralelo, realza la potencia de AWS Step Functions para orquestar flujos de trabajo complejos y multifacéticos, de manera eficiente. 

  • Selección de elementos basada en decisiones: La rama de "Get items based on weather code" utiliza DecisionRules.io para determinar que elementos son los más adecuados para el evento, en función de las condiciones meteorológicas, asegurando la comodidad óptima de los invitados y el éxito del evento. Puedes ver la regla responsable de la selección de elementos a continuación:
  • Facturación dinámica y reservación de los locales: Ramas adicionales, como "Create invoices" y "Create venue reservation”, se encargan de otros aspectos de la planificación de eventos, demostrando la habilidad de la máquina de estado de gestionar varias tareas simultáneamente.

Mecanismos de gestión de errores

Fallos en las llamadas a la API: La máquina de estados incluye un bloque catch en la tarea de "Call Weather API" para gestionar los errores HTTP y los timeouts. Al encontrarse estos errores en particular, el flujo de trabajo pasa al estado  "API Error Handler", el cual registra el error y concluye la ejecución, asegurando que los fallos se gestionen con elegancia sin comprometer todo el flujo de trabajo.

Fallos de ejecución paralela: Un bloque catch dentro del estado "Process Order" captura errores de cualquiera de las ramas paralelas. Si se produce un error, el flujo de trabajo pasa al estado "General Error Handler", el cual registra el error y finaliza la ejecución de forma segura. Este enfoque garantiza que los errores en una rama no detengan el proceso global, lo que permite una gestión integral de errores en múltiples tareas.

La Salida

La máquina de estado emite una descripción del clima, así como los elementos que se recomiendan llevar en función del código meteorológico proporcionado por la API meteorológica.

Beneficios de Integración y Valor Estratégico

  • Automatización y Escalabilidad: El uso de AWS Step Functions para orquestar estos procesos, reduce intervención manual, automatiza los flujos de decisiones complejas, y permite escalar para gestionar múltiples eventos simultáneamente.
  • Uso Innovador de los Servicios en la Nube: Este caso ejemplifica la aplicación innovadora de los servicios en la nube como AWS Step Functions y DecisionRules.io, para resolver desafíos empresariales reales, mostrando el potencial de la tecnología en la nube para impulsar la excelencia operativa y la adaptabilidad estratégica.

Conclusión

El caso de uso avanzado de la integración de DecisionRules.io con AWS Step Functions, informado por datos meteorológicos previstos en tiempo real de la API Open Weather, demuestra un enfoque poderoso para automatizar y optimizar las decisiones empresariales. Esta aplicación no solo muestra las capacidades técnicas de estos servicios, sino que también pone de relieve el valor estratégico de aprovechar las soluciones basadas en la nube para la toma de decisiones dinámicas en las operaciones empresariales.

Enjoyed the read? Let’s take the next step together.