Qué es
AWS Step Functions coordina los pasos de un proceso como una máquina de estados: defines qué se hace en cada paso, qué pasa si falla, cuándo esperar y por dónde seguir, y el servicio lo ejecuta, guarda el estado entre pasos y te muestra cada ejecución en un diagrama. Así la lógica de coordinación (reintentos, ramas, tiempos de espera) sale del código de tus funciones y queda declarada en un solo sitio. Los flujos se escriben en ASL (Amazon States Language, un JSON (JavaScript Object Notation: formato de datos en texto)) o se diseñan arrastrando pasos en Workflow Studio.
Conceptos clave
- Estados:
Task(hace un trabajo),Choice(rama según una condición),Parallel(ramas a la vez),Map(repite un paso para cada elemento de una lista; el Map distribuido procesa millones de objetos de S3 (Simple Storage Service) en paralelo),Wait,Pass,SucceedyFail. - Tipos de flujo (se elige al crearlo y no se puede cambiar):
- Standard: hasta 1 año, cada paso se ejecuta exactamente una vez, historial consultable en el servicio durante 90 días; se paga por transición de estado.
- Express: hasta 5 minutos, ejecución al menos una vez, ritmo de más de 100 000 ejecuciones por segundo, historial en CloudWatch Logs; se paga por número y duración de ejecuciones.
- Integraciones con servicios: llamadas directas a más de 200 servicios (DynamoDB, SQS (Simple Queue Service), SNS (Simple Notification Service), ECS (Elastic Container Service), Glue, Bedrock…) sin una Lambda de por medio.
- Patrones de integración (solo en Standard los dos últimos):
petición-respuesta (llama y sigue), ejecutar un trabajo
(
.sync, espera a que termine, por ejemplo un trabajo de Batch) y esperar una devolución de llamada (.waitForTaskToken, se pausa hasta que alguien devuelve un token; ideal para aprobaciones humanas). - Gestión de errores:
Retrycon espera exponencial yCatchpara desviar a un paso de compensación. Es la base del patrón saga para deshacer pasos de una transacción distribuida. - Datos entre pasos: con JSONPath o con expresiones JSONata, y variables para reutilizar valores en pasos posteriores.
Casos de uso típicos
- Procesos de negocio con varios pasos: pedido, pago, envío y notificación.
- Flujos con intervención humana (aprobaciones) mediante tokens de devolución.
- Canalizaciones de datos y ML (Glue, SageMaker AI, Batch) con esperas a que terminen.
- Procesar en paralelo miles de ficheros de S3 con el Map distribuido.
- Orquestar llamadas a modelos de Bedrock y pasos de validación en aplicaciones de IA (inteligencia artificial).
Cuándo NO usarlo
- Una sola acción rápida disparada por un evento: una función Lambda basta.
- Enrutar eventos entre servicios sin estado: EventBridge.
- Desacoplar productor y consumidor con una cola: SQS.
- Canalizaciones de datos complejas con dependencias al estilo Apache Airflow y un equipo que ya lo usa: Amazon MWAA (Managed Workflows for Apache Airflow).
Standard frente a Express
| Característica | Standard | Express |
|---|---|---|
| Duración máxima | 1 año | 5 minutos |
| Semántica | Exactamente una vez | Al menos una vez |
| Ritmo de inicio | Miles por segundo | Más de 100 000 por segundo |
| Precio | Por transición de estado | Por ejecución y duración |
| .sync y waitForTaskToken | Sí | No |
| Uso típico | Procesos largos y auditables | Eventos de alto volumen, IoT (internet de las cosas), streaming |
Modelo de precios
En los flujos Standard se paga por cada transición de estado, con un nivel gratuito mensual. En los Express, por número de ejecuciones y por su duración según la memoria usada. Se suman los servicios invocados en cada paso y, en Express, los registros en CloudWatch.
Seguridad y alta disponibilidad
- Cada máquina de estados asume un rol de IAM (Identity and Access Management) con los permisos justos para los servicios que llama.
- Servicio regional y redundante en varias zonas; el estado de las ejecuciones Standard se guarda de forma duradera.
- Cifrado de los datos con claves de KMS (Key Management Service) gestionadas por el cliente si se necesita.
- Integración con X-Ray para trazar las ejecuciones y endpoints de VPC (Virtual Private Cloud).
Trampas de examen
- "Coordinar varias Lambdas con reintentos, ramas y esperas": Step Functions, no encadenar funciones que se llaman entre sí.
- "Proceso que dura días" o "aprobación humana": flujo Standard con
.waitForTaskToken. - "Alto volumen de eventos cortos y barato": flujo Express.
- "Exactamente una vez": Standard.
- "Procesar en paralelo millones de objetos de S3": Map distribuido.
- "Deshacer pasos si falla uno posterior":
Catchhacia pasos de compensación (patrón saga). - "Llamar a DynamoDB sin escribir una Lambda": integración directa con el servicio.
Preguntas de práctica
Preguntas originales escritas para estos apuntes. No son preguntas reales de examen.
Fuentes
- What is Step Functions?, documentación de AWS (consultada el 26/09/2026).
- Choosing workflow type in Step Functions, documentación de AWS (consultada el 26/09/2026).
- Discover service integration patterns in Step Functions, documentación de AWS (consultada el 26/09/2026).
- Using Map state in Distributed mode, documentación de AWS (consultada el 26/09/2026).
- Handling errors in Step Functions workflows, documentación de AWS (consultada el 26/09/2026).