Funciones duraderas o Step Functions
Tanto las funciones duraderas de Lambda como AWS Step Functions permiten una orquestación de flujos de trabajo fiable con administración automática de estados y recuperación de errores. Se adaptan a diferentes patrones arquitectónicos y preferencias de los desarrolladores. Las funciones duraderas están optimizadas para el desarrollo de aplicaciones en Lambda, mientras que Step Functions está diseñada para la orquestación de flujos de trabajo entre los servicios de AWS.
Cuándo utilizar funciones de larga duración
Utilice funciones duraderas en los siguientes casos:
Su equipo prefiere los lenguajes de programación estándar y las herramientas de desarrollo conocidas.
La lógica de su aplicación se encuentra principalmente en las funciones de Lambda.
Desea un control detallado sobre el estado de ejecución en el código.
Está creando aplicaciones centradas en Lambda con un acoplamiento ajustado entre el flujo de trabajo y la lógica empresarial.
Desea realizar iteraciones rápidamente sin tener que alternar entre los diseñadores de códigos y los visuales/basados en JSON.
Cuándo usar Step Functions
Utilice Step Functions en los siguientes casos:
Necesita una representación visual del flujo de trabajo para tener visibilidad entre todos los equipos.
Está orquestando varios servicios de AWS y quiere integraciones nativas sin código del SDK personalizado.
Necesita una infraestructura que no requiera mantenimiento (sin parches ni actualizaciones en tiempo de ejecución).
Las partes interesadas no técnicas necesitan comprender y validar la lógica del flujo de trabajo.
Marco de decisiones
Utilice las siguientes preguntas para determinar qué servicio se adapta a su caso de uso:
-
¿Cuál es su enfoque principal? Desarrollo de aplicaciones en Lambda → funciones duraderas. Orquestación de flujos de trabajo en AWS → Step Functions.
-
¿Cuál es su modelo de programación preferido? Lenguajes de programación estándar → funciones duraderas. Diseñador visual o DSL basado en gráficos → Step Functions.
-
¿Cuántos servicios de AWS están involucrados? Principalmente Lambda → funciones duraderas. Varios servicios de AWS → Step Functions.
-
¿Qué herramientas de desarrollo utiliza? Experiencia de desarrollador para Lambda, IDE con agente LLM, marcos de pruebas unitarias específicos del lenguaje de programación, AWS SAM, AWS CDK, kit de herramientas de AWS → funciones duraderas. Creador visual de flujos de trabajo y AWS CDK para modelar flujos de trabajo → Step Functions.
-
¿Quién administra la infraestructura? Quiere flexibilidad dentro de Lambda → funciones duraderas. Quiere una infraestructura totalmente administrada y que no requiera mantenimiento → Step Functions.
Comparación de características
En la siguiente tabla se comparan las principales características de Step Functions y las funciones duraderas de Lambda:
| Característica | AWS Step Functions | Funciones duraderas de Lambda |
|---|---|---|
| Enfoque principal | Orquestación de flujos de trabajo en AWS | Desarrollo de aplicaciones en Lambda |
| Tipo de servicio | Servicio de flujo de trabajo independiente y dedicado | Ejecución dentro de Lambda |
| Modelo de programación | Basado en gráficos, mediante Amazon States Language (un DSL) o AWS CDK | Lenguajes de programación estándar (JavaScript/TypeScript, Python) |
| Herramientas de desarrollo | Creador visual en la consola/extensión para IDE del kit de herramientas de AWS, AWS CDK | Lambda DX dentro del IDE y con agentes LLM, marcos de pruebas unitarias, AWS SAM, extensión para IDE del kit de herramientas de AWS |
| Integraciones | Más de 220 servicios de AWS y 16 000 API | Extensión del modelo de programación basada en eventos de Lambda (orígenes de eventos) |
| Administración | Totalmente administrado, independiente del tiempo de ejecución y no requiere mantenimiento (sin parches ni actualizaciones del tiempo de ejecución) | Administrado dentro del entorno de Lambda |
| Lo mejor para | Automatización de TI y procesos empresariales, procesamiento de datos y flujos de trabajo de IA | Transacciones distribuidas, lógica de aplicaciones con estado, orquestación de funciones, procesamiento de datos, flujos de trabajo de IA |
Arquitecturas híbridas
Muchas aplicaciones se benefician del uso de ambos servicios. Un patrón común es el uso de funciones duraderas para la lógica de nivel de aplicación dentro de Lambda, mientras que Step Functions coordina los flujos de trabajo de alto nivel en varios servicios de AWS más allá de las funciones de Lambda.
Consideraciones sobre la migración
Comience con lo simple y evolucione hacia lo complejo: comience con funciones duraderas para flujos de trabajo centrados en Lambda. Añada Step Functions cuando necesite una orquestación de varios servicios o un diseño visual del flujo de trabajo.
Usuarios actuales de Step Functions: mantenga Step Functions para flujos de trabajo establecidos entre servicios. Considere utilizar funciones duraderas para una nueva lógica de aplicaciones de Lambda que necesite fiabilidad.