Administración de flujos de trabajo y eventos de Lambda
Cuando crea aplicaciones sin servidor con Lambda, a menudo se necesitan formas de orquestar la ejecución de las funciones y gestionar los eventos. AWS proporciona varios servicios que ayudan a coordinar las funciones de Lambda:
-
Funciones duraderas de Lambda para una orquestación del flujo de trabajo basada en el código dentro de Lambda
-
AWS Step Functions para la orquestación visual del flujo de trabajo en varios servicios
-
El Programador de Amazon EventBridge y Amazon EventBridge para la programación y las arquitecturas de eventos
También puede integrar estos enfoques juntos. Por ejemplo, puede utilizar el Programador de EventBridge para desencadenar funciones duraderas o los flujos de trabajo de Step Functions cuando se produzcan eventos específicos, o configurar los flujos de trabajo para publicar eventos en el Programador de EventBridge en puntos de ejecución definidos. En los siguientes temas de esta sección, se brinda más información sobre cómo puede utilizar estas opciones de orquestación.
Orquestación basada en el código con funciones duraderas
Las funciones duraderas de Lambda proporcionan un enfoque basado en el código para la orquestación del flujo de trabajo, lo que le permite crear flujos de trabajo con estado y de larga duración directamente dentro de sus funciones de Lambda. A diferencia de los servicios de orquestación externos, las funciones duraderas mantienen la lógica del flujo de trabajo dentro del código, lo que facilita la creación de versiones, las pruebas y el mantenimiento junto con la lógica empresarial.
Las funciones duraderas son ideales cuando necesita lo siguiente:
-
Definición del flujo de trabajo basado en el código: defina los flujos de trabajo con lenguajes de programación conocidos en lugar de usar JSON o diseñadores visuales.
-
Procesos de larga duración: ejecute flujos de trabajo que pueden durar hasta 1 año, muy por encima del límite de 15 minutos de las funciones estándar de Lambda.
-
Desarrollo simplificado: mantenga la lógica del flujo de trabajo y la lógica empresarial en la misma base de código para facilitar el mantenimiento y las pruebas.
-
Espera rentable: pause la ejecución durante los estados de espera sin consumir recursos de cómputo.
-
Administración de estado integrada: creación automática de puntos de control y persistencia del estado sin configuración de almacenamiento externo.
Elección entre funciones duraderas y Step Functions
Tanto las funciones duraderas como Step Functions ofrecen capacidades de orquestación del flujo de trabajo, pero sirven para diferentes casos de uso:
| Consideración | Funciones duraderas | Step Functions |
|---|---|---|
| Definición de flujo de trabajo | Basado en el código (JavaScript, Python, Java) | Diseñador visual o Amazon States Language basado en JSON |
| Enfoque de desarrollo | Base de código única con lógica empresarial | Definición de flujo de trabajo y código de función independientes |
| Integración con los servicios | Mediante el código de función de Lambda y AWS SDK | Integraciones nativas con muchos servicios de AWS |
| Duración de la ejecución | Hasta 1 año | Hasta 1 año (estándar), 5 minutos (exprés) |
| Procesamiento paralelo | Promise.all() y patrones basados en el código | Mapa distribuido y de estado paralelo |
| Gestión de errores | Bloques de try-catch y lógica de reintento personalizada | Estados de retry y catch integrados |
| Supervisión visual | Registros y paneles personalizados de CloudWatch | Gráfico visual de ejecución e historial detallado |
| Lo mejor para | Flujos de trabajo centrados en el desarrollador, lógica empresarial compleja, creación rápida de prototipos | Orquestación de varios servicios, flujos de trabajo visuales, gobernanza empresarial |
Utilice funciones duraderas en los siguientes casos:
-
Su equipo prefiere enfoques de desarrollo basados en el código.
-
La lógica del flujo de trabajo está estrechamente relacionada con la lógica empresarial.
-
Necesita crear prototipos rápidos e iteración.
-
Sus flujos de trabajo incluyen principalmente funciones de Lambda y llamadas a servicios sencillas.
Utilice Step Functions en los siguientes casos:
-
Necesita supervisión y diseño visual del flujo de trabajo.
-
Sus flujos de trabajo orquestan varios servicios de AWS de forma exhaustiva.
-
Necesita características de gobernanza empresarial y cumplimiento.
-
Las partes interesadas no técnicas necesitan comprender la lógica del flujo de trabajo.
Para obtener más información sobre las funciones duraderas, consulte Funciones duraderas en Lambda.
Orquestación de flujos de trabajo con Step Functions
AWS Step Functions es un servicio de orquestación de flujos de trabajo que ayuda a coordinar varias funciones de Lambda y otros servicios de AWS en flujos de trabajo estructurados. Estos flujos de trabajo pueden mantener el estado, manejar errores con mecanismos de reintento sofisticados y procesar datos a escala.
Step Functions ofrece dos tipos de flujos de trabajo para satisfacer las diferentes necesidades de orquestación:
- Flujos de trabajo estándar
-
Ideal para flujos de trabajo de larga duración y auditables que requieren una semántica de ejecución única. Los flujos de trabajo estándar pueden durar hasta un año, proporcionar un historial de ejecución detallado y admitir la depuración visual. Son adecuados para procesos como la tramitación de pedidos, los procesos de procesamiento de datos o los trabajos de análisis de varios pasos.
- Flujos de trabajo rápidos
-
Diseñados para cargas de trabajo de alta tasa de eventos y de corta duración con una semántica de ejecución de al menos una vez. Los flujos de trabajo exprés pueden durar hasta cinco minutos y son ideales para el procesamiento de eventos de gran volumen, la transmisión de transformaciones de datos o los escenarios de ingesta de datos de IoT. Ofrecen un mayor rendimiento y, potencialmente, un costo más bajo en comparación con los flujos de trabajo estándar.
nota
Para obtener más información sobre los tipos de flujo de trabajo de Step Functions, consulte Elección del tipo de flujo de trabajo en Step Functions.
Dentro de estos flujos de trabajo, Step Functions brinda dos tipos de estados de mapa para el procesamiento paralelo:
- Inline Map
-
Procesa los elementos de una matriz JSON dentro del historial de ejecución del flujo de trabajo principal. Inline Map admite hasta 40 iteraciones simultáneas y es adecuado para conjuntos de datos más pequeños o cuando se necesita mantener todo el procesamiento en una sola ejecución. Para obtener más información, consulte Uso del estado Map en modo Inline.
- Distributed Map
-
Permite el procesamiento de cargas de trabajo paralelas a gran escala mediante la iteración de conjuntos de datos que superan los 256 KiB o requieren más de 40 iteraciones simultáneas. Con soporte para hasta 10 000 ejecuciones de flujos de trabajo secundarios en paralelo, Distributed Map destaca en el procesamiento de datos semiestructurados almacenados en Amazon S3, como archivos JSON o CSV, lo que lo hace ideal para el procesamiento por lotes y las operaciones de ETL. Para obtener más información, consulte Uso del estado Map en modo Distributed.
Al combinar estos tipos de flujo de trabajo y estados de mapas, Step Functions brinda un conjunto de herramientas flexible y potente para la orquestación de aplicaciones complejas sin servidor, desde operaciones a pequeña escala hasta canalizaciones de procesamiento de datos a gran escala.
Para empezar a utilizar Lambda con Step Functions, consulte Orquestación de las funciones de Lambda con Step Functions.
Administración de eventos con EventBridge y con el Programador de EventBridge
Amazon EventBridge es un servicio de bus de eventos que le ayuda a crear arquitecturas basadas en eventos. Enruta eventos entre servicios de AWS, aplicaciones integradas y aplicaciones de software como servicio (SaaS). El Programador de EventBridge es un programador sin servidor que permite crear, ejecutar y administrar tareas desde un servicio centralizado, lo que permite invocar funciones de Lambda según un horario mediante expresiones de frecuencia o configurar invocaciones únicas.
Amazon EventBridge y el Programador de EventBridge ayudan a crear arquitecturas basadas en eventos con Lambda. EventBridge enruta los eventos entre servicios de AWS, aplicaciones integradas y aplicaciones SaaS, mientras que el Programador de EventBridge brinda capacidades de programación específicas para invocar funciones de Lambda de forma recurrente o puntual.
Estos servicios proporcionan varias capacidades clave para trabajar con funciones de Lambda:
-
Crean reglas que coinciden y enrutan los eventos a las funciones de Lambda mediante EventBridge
-
Configuran invocaciones de funciones recurrentes mediante expresiones de frecuencia con el Programador de EventBridge
-
Configuran invocaciones de funciones únicas en fechas y horas específicas
-
Definen intervalos de tiempo flexibles y políticas de reintentos para las invocaciones programadas
Para obtener más información, consulte Invocación de una función de Lambda según una programación.