0%
AWS Lambda y Step Functions Simplificados: Guía para Principiantes

AWS Lambda y Step Functions Simplificados: Guía para Principiantes

Descubre AWS Lambda y Step Functions, dos servicios serverless esenciales de AWS, sus casos de uso y cómo utilizarlos juntos para crear workflows automatizados.

I

InSkillCoach

· min

AWS Lambda y Step Functions Simplificados: Guía para Principiantes

Introducción

AWS Lambda y AWS Step Functions son dos servicios serverless fundamentales de AWS que permiten ejecutar código sin gestionar infraestructura. Este artículo te ayudará a entender estos servicios, sus diferencias y cómo utilizarlos juntos para crear workflows automatizados.

AWS Lambda: Ejecución de Código bajo Demanda

¿Para qué sirve?

Lambda sirve para ejecutar una función corta (como una minitarea), justo cuando es necesario. Sin contenedor, sin servidor.

¿Cuándo se usa?

  • Cuando solo quieres responder a un evento (por ejemplo: una llamada a una API, una imagen que llega a S3…)
  • Cuando tu código es corto y solo se ejecuta durante unos pocos segundos cada vez
  • Cuando quieres pagar únicamente por el uso

Ejemplo concreto:

Alguien envía un formulario en tu sitio web. Quieres enviar un correo electrónico automáticamente.
Escribes una función que lo haga (en Python o Node) y le dices a Lambda:

“Ejecuta este código solo cuando se envíe el formulario.”

AWS Step Functions: Orquestación de Workflows

¿Para qué sirve?

Step Functions permite coordinar varias funciones Lambda y otros servicios de AWS en un workflow visual y sin código.

¿Cuándo se usa?

  • Cuando tienes un proceso que requiere varios pasos
  • Cuando quieres gestionar los errores y los reintentos de forma elegante
  • Cuando quieres visualizar y seguir la ejecución de tu workflow

Ejemplo concreto:

Tienes un proceso de registro de usuarios que requiere varios pasos:

  1. Verificar la información
  2. Crear una cuenta en la base de datos
  3. Enviar un correo de confirmación
  4. Generar un perfil por defecto

Puedes orquestar todo esto con Step Functions sin escribir código de orquestación.

Comparación con Fargate

CaracterísticaFargateLambda
Tipo de appAplicación completaFunción corta / tarea única
Formato de despliegueContenedor DockerCódigo (archivo .js, .py, etc.)
¿Cuándo se inicia?Siempre activo o bajo demandaSolo cuando ocurre algo
Duración de ejecuciónLarga duración (minutos, horas, días)Corta duración (unos segundos, máx. 15 min)
Uso típicoAPI web, backend, sitio, microserviciosTareas puntuales, automatización, API ligeras
Nivel de controlMedio (gestionas tu contenedor)Muy bajo (solo gestionas el código)
PagoPor minuto de contenedorPor llamada y duración exacta de ejecución

Casos de Uso Concretos

Ejemplo para un sitio de comercio electrónico:

  • Tienes un backend completo con carrito, login y pago → Fargate
  • Cuando alguien realiza una compra, quieres enviar un recibo por correo electrónico → Lambda
  • Quieres orquestar todo el proceso de compra → Step Functions

Ejemplo para un sistema de procesamiento de imágenes:

  • Quieres procesar imágenes cuando se suben → Lambda
  • Quieres orquestar varios pasos (redimensionamiento, compresión, análisis) → Step Functions

Cómo Trabajan Juntos Lambda y Step Functions

Step Functions utiliza Lambda como uno de sus posibles “estados” (steps). Así es como se integran:

  1. Creas varias funciones Lambda para distintas tareas
  2. Defines un workflow en Step Functions que llama a esas funciones en un orden específico
  3. Step Functions gestiona la ejecución, los reintentos y la gestión de errores

Ejemplo de Workflow de Step Functions

{
  "Comment": "Un workflow de traitement de commande",
  "StartAt": "VérifierCommande",
  "States": {
    "VérifierCommande": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:region:account:function:VerifierCommande",
      "Next": "TraiterPaiement"
    },
    "TraiterPaiement": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:region:account:function:TraiterPaiement",
      "Next": "PréparerLivraison"
    },
    "PréparerLivraison": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:region:account:function:PreparerLivraison",
      "End": true
    }
  }
}

Buenas Prácticas

Para Lambda

  1. Mantén las funciones pequeñas y enfocadas: una función = una tarea
  2. Usa timeouts apropiados: máximo 15 minutos para Lambda
  3. Gestiona los errores correctamente: devuelve códigos de error apropiados
  4. Usa variables de entorno para la configuración
  5. Optimiza el paquete de despliegue para reducir los tiempos de arranque

Para Step Functions

  1. Diseña workflows idempotentes: deben poder ejecutarse varias veces sin problemas
  2. Usa timeouts apropiados para cada estado
  3. Implementa una gestión de errores robusta con estados de recuperación
  4. Usa ramas condicionales para gestionar distintos escenarios
  5. Limita la complejidad de los workflows para mantener la legibilidad

Conclusión

AWS Lambda y Step Functions son servicios potentes que permiten crear aplicaciones serverless sofisticadas sin gestionar infraestructura. Lambda es ideal para ejecutar código bajo demanda, mientras que Step Functions permite orquestar varias funciones y servicios en workflows complejos.

Si comprendes los puntos fuertes y los casos de uso de cada servicio, podrás diseñar arquitecturas serverless eficientes y escalables.

Recursos adicionales

InSkillCoach

Acerca de InSkillCoach

Experto en formación y tecnologías

Coach especializado en tecnologías avanzadas e IA, impulsado por GNeurone Inc.

Certificaciones:

  • AWS Certified Solutions Architect – Professional
  • Certificaciones de Google Cloud
  • Microsoft Certified: DevOps Engineer Expert
  • Certified Kubernetes Administrator (CKA)
  • CompTIA Security+
1.9k
250

Comentarios

Los comentarios funcionan con GitHub Discussions

Inicia sesión con GitHub para participar en la discusión

¡Enlace copiado!