Integrations

AWS Step Functions II: Integración con DecisionRules - Uso en el Mundo Real

Ampliando la visión general de AWS Step Functions de la Parte I, la Parte II explora la integración práctica de DecisionRules.io para la toma de decisiones dinámica, enriquecida por datos en tiempo real de la API de Open Weather, mostrando capacidades complejas de orquestación de flujos de trabajo.

DecisionRules Expert

Apr 22, 2024

7 min read

AWS Step Functions II: Integración con DecisionRules - Uso en el Mundo Real

Basándose en los conceptos discutidos en la Parte I, donde introdujimos el papel de AWS Step Functions en la orquestación de flujos de trabajo complejos y la automatización de procesos de toma de decisiones, la Parte II se adentra en una aplicación práctica integrando DecisionRules.io para la toma de decisiones dinámica, mejorada aún más por datos en tiempo real de la API de Open Weather. Esta integración ejemplifica cómo AWS Step Functions puede gestionar lógica y decisiones complejas basadas en condiciones externas, mostrando el uso de esta tecnología en un escenario que requiere adaptabilidad y precisión.

Escenario: Flujo de Trabajo de Negocios de Catering

Imagina un negocio de catering que necesita ajustar sus operaciones dinámicamente según las condiciones climáticas. La máquina de estados proporcionada representa un flujo de trabajo simple que combina la recuperación de datos meteorológicos con procesos de toma de decisiones facilitados por DecisionRules. Esta configuración permite al negocio tomar decisiones informadas sobre la planificación de eventos, selección de menús y arreglos logísticos, todo adaptado a las condiciones climáticas pronosticadas. También maneja la realización de reservas de lugares y la creación de facturas utilizando AWS Lambdas que interactúan con el sistema de gestión del negocio.

__wf_reserved_inherit

¿Qué necesitarás?

  • Una cuenta de AWS con una suscripción y, idealmente, privilegios de Administrador
  • Un rol para tu máquina de estados con los siguientes permisos: algún texto
    • para Invocar Funciones Lambda
    • para Invocar Puntos de Extremidad HTTP y recuperar credenciales a través de Amazon EventBridge 
    • para Acceder a AWS Secrets Manager (Usado por API Gateway para almacenar Tokens Bearer y otra información sensible)
    • Permisos Generales de Step Function (Iniciar Ejecución, Describir ejecución, etc…)

El Flujo de Trabajo

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

__wf_reserved_inherit

La ejecución luego comienza, siguiendo los pasos a continuación.

__wf_reserved_inherit

1. Recuperando Datos Meteorológicos

El proceso comienza con el estado "Crear Punto de Extremidad API", que configura el punto de extremidad para la API de Open-Meteo. Tras esta configuración, el estado "Llamar API Meteorológica" recupera el pronóstico para la fecha y ubicación especificadas, asegurando que el proceso de toma de decisiones esté informado por la información meteorológica más actual y relevante. Esta información llega en forma de un código meteorológico que puede ser interpretado utilizando la documentación de Open-Meteo.

La solicitud en sí para nuestros datos de entrada se ve así:

__wf_reserved_inherit

2. Creando Cuerpos de Solicitud

Después de obtener el pronóstico del tiempo, la máquina de estados transita al estado "Crear Cuerpo de Solicitud", donde prepara la entrada para DecisionRules.io basada en los datos meteorológicos.

En este estado de paso procesamos la respuesta de la API meteorológica y transformamos los datos para preparar el cuerpo de solicitud para DecisionRules y aquí es donde prepararíamos solicitudes para cualquier otro servicio o solución de reglas que queramos ejecutar en el siguiente estado paralelo etiquetado como "Procesar Pedido".

A continuación se muestra una representación del Lenguaje de Estado de Amazon del estado "Obtener artículos según el código meteorológico".

__wf_reserved_inherit

3. Ejecución Paralela para una Toma de Decisiones Integral

El núcleo de esta máquina de estados radica en su estado "Procesar Pedido", que muestra la ejecución concurrente de múltiples tareas, cada una potencialmente aprovechando DecisionRules.io para diferentes aspectos de la planificación de eventos. Esta capacidad de procesamiento paralelo destaca el poder de AWS Step Functions para orquestar flujos de trabajo complejos y multifacéticos de manera eficiente.

  • Selección de Artículos Basada en Decisiones: La rama "Obtener artículos según el código meteorológico" utiliza DecisionRules.io para determinar qué artículos son los más adecuados para el evento según el clima actual, asegurando el óptimo confort de los invitados y el éxito del evento. Puedes ver la regla responsable de hacer las selecciones de artículos a continuación.

__wf_reserved_inherit

  • Facturación Dinámica y Reserva de Lugar: Ramas adicionales, como "Crear facturas" y "Crear reserva de lugar", manejan otros aspectos de la planificación de eventos, demostrando la capacidad de la máquina de estados para gestionar diversas tareas simultáneamente.

Mecanismos de Manejo de Errores

Fallos en Llamadas a la API: La máquina de estados incluye un bloque Catch en la tarea "Llamar API Meteorológica" para manejar errores HTTP y tiempos de espera. Al encontrar tales errores, el flujo de trabajo transita al estado "Manejador de Errores de API", que registra el error y concluye la ejecución, asegurando que los fallos se manejen de manera adecuada y no comprometan todo el flujo de trabajo.

Fallos en Ejecuciones Paralelas: Un bloque Catch dentro del estado "Procesar Pedido" captura errores de cualquiera de las ramas paralelas. Si ocurre un error, el flujo de trabajo se mueve al estado "Manejador de Errores General", que registra el error y finaliza la ejecución de manera segura. Este enfoque asegura que los errores en una rama no detengan el proceso general, permitiendo una gestión integral de errores a través de múltiples tareas.

La Salida

La máquina de estados produce una descripción del clima, así como artículos recomendados para llevar según el código meteorológico proporcionado por la API meteorológica.

__wf_reserved_inherit__wf_reserved_inherit

Beneficios de la Integración y Valor Estratégico

  • Automatización y Escalabilidad: El uso de AWS Step Functions para orquestar estos procesos reduce la intervención manual, automatiza flujos de trabajo de decisiones complejas y escala para manejar múltiples eventos o escenarios simultáneamente.
  • Uso Innovador de Servicios en la Nube: Este escenario ejemplifica la aplicación innovadora de servicios en la nube como AWS Step Functions y DecisionRules.io para resolver desafíos empresariales del mundo real, 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 integrar DecisionRules.io con AWS Step Functions, informado por datos de pronóstico del tiempo en tiempo real de la API de Open Weather, demuestra un enfoque poderoso para automatizar y optimizar decisiones empresariales. Este escenario no solo muestra las capacidades técnicas de estos servicios, sino que también resalta el valor estratégico de aprovechar soluciones basadas en la nube para la toma de decisiones dinámica en las operaciones empresariales.