AWS Step Functions
Orquesta procesos de varios pasos como una máquina de estados, con reintentos y manejo de errores declarados.
En palabras simples
Es el guion de una obra de teatro: define quién entra en cada escena, qué pasa si alguien se equivoca y cómo sigue la función, en vez de dejar que cada actor improvise.
Cuándo aplicarlo
Cuando un proceso tiene varios pasos con condiciones, reintentos, esperas o intervención humana, y encadenar funciones Lambda a mano se vuelve frágil.
- ▸Procesar un pedido: validar, cobrar, reservar inventario y notificar, con reversión si algo falla
- ▸Canalizaciones de datos con pasos que dependen del resultado del anterior
- ▸Flujos con aprobación humana en medio, que esperan días sin consumir cómputo
- ▸Coordinar tareas largas de ECS, Glue o SageMaker desde un mismo lugar
Vocabulario mínimo
- Máquina de estados
- La definición del flujo completo: sus pasos, sus transiciones y sus condiciones.
- Estado
- Cada paso. Puede invocar un servicio, decidir por una condición, esperar, o correr ramas en paralelo.
- Flujo estándar y flujo exprés
- El estándar dura hasta un año y guarda el historial completo; el exprés es para volúmenes altos y corta duración.
- Reintento y captura
- La política de errores se declara en el flujo, no se programa dentro de cada función.
- Integración directa
- Step Functions llama a más de doscientos servicios de AWS sin necesidad de una función Lambda intermedia.
Costo y capa gratuita
- Cómo se cobra
- Los flujos estándar se cobran por transición de estado; los exprés, por número de ejecuciones y por duración y memoria consumidas.
- Capa gratuita
- 4.000 transiciones de estado al mes de forma permanente en los flujos estándar.
Cuidado con los créditos
- ⚠Bucles de reintento sin límite: cada vuelta cuenta transiciones y puede dispararse sin que nadie lo note.
- ⚠Usar flujos estándar para procesos de altísima frecuencia y corta duración, donde el exprés es mucho más barato.
- ⚠Descomponer en veinte estados lo que cabría en tres: cada transición se factura.
Descripción
Cuando un proceso tiene varios pasos, la tentación es que cada función Lambda llame a la siguiente. Funciona hasta el primer error: entonces hay que decidir dónde se reintenta, cómo se sabe en qué paso quedó todo y qué se deshace. Esa lógica termina repartida y duplicada por todo el código.
Step Functions saca esa coordinación fuera. El flujo se declara como una máquina de estados en JSON, con sus condiciones, sus reintentos y su manejo de errores. Cada función vuelve a ocuparse solo de su tarea, y la consola muestra gráficamente por dónde va cada ejecución y dónde falló.
Cómo funciona
- Declaras la máquina de estados: los pasos, el orden y las condiciones entre ellos.
- Cada estado invoca un servicio —Lambda, ECS, Glue, SageMaker, DynamoDB— o toma una decisión.
- Los estados en paralelo ejecutan ramas a la vez; el estado de mapa recorre una lista de elementos.
- Los reintentos y las capturas se declaran por estado, sin escribir esa lógica en el código.
- La ejecución queda registrada paso a paso, con su entrada y su salida, lo que hace visible el fallo.
Manos a la obra
- Crea una máquina de estados con dos funciones Lambda encadenadas, la segunda con un fallo forzado.
- Ejecuta el flujo y observa el gráfico: el paso que falló aparece marcado en rojo.
- Añade una política de reintento con tres intentos y retroceso exponencial, sin tocar el código.
- Añade un estado de decisión que enrute según un campo del resultado anterior.
- Prueba un estado de espera de un minuto: no consume cómputo mientras espera.
Ejemplo visual
La ventaja que más se nota en la práctica no es técnica sino de diagnóstico: cuando algo falla, la consola dice exactamente en qué paso, con qué entrada y con qué error.
Cuándo NO es la mejor opción
- Amazon EventBridge — si los componentes solo deben reaccionar a eventos y no hay un orden que alguien deba garantizar.
- Amazon MWAA — si el equipo de datos ya escribe sus flujos en Airflow y quiere mantener ese ecosistema.
- Lógica dentro de una función Lambda — si el proceso son dos pasos sencillos, una máquina de estados añade más ceremonia que valor.
Se usa junto con
Aparece en certificaciones
- AWS Certified Solutions Architect – Associate
- AWS Certified Developer – Associate
- AWS Certified DevOps Engineer – Professional