Función AWS Lambda en Python desde la consola

Clase 13 de 36Curso Práctico de AWS Cloud

Resumen

Construye una función AWS Lambda en Python paso a paso desde la consola, configura variables de ambiente, ajusta memoria y concurrencia, y valida la ejecución con métricas detalladas en CloudWatch. Aquí verás el flujo completo: creación from scratch, edición del código con el Lambda handler y una prueba controlada con evento.

¿Cómo crear una función Lambda en Python desde la consola?

Inicia en All Services > Compute > Lambda y elige crear una función from scratch. Asigna un nombre (por ejemplo, Platzi Fun), selecciona Python 3.6 como runtime, define un rol de ejecución y crea la función. No configures triggers por ahora: la salida irá a CloudWatch.

  • Ir a All Services > Lambda y crear función from scratch.
  • Elegir nombre y runtime Python 3.6.
  • Seleccionar role de ejecución.
  • Omitir triggers y usar CloudWatch para la salida.
  • Editar el código en el editor integrado.

¿Qué debe incluir el Lambda handler?

El punto de entrada es una función llamada Lambda_handler con dos argumentos: event y context. Desde ahí se lee la configuración (variables de ambiente) y se ejecuta la lógica.

def Lambda_handler(event, context):
    # Leer variables de ambiente (mensaje y número de veces).
    # Validar que el número de veces sea mayor que cero.
    # Imprimir el mensaje la cantidad indicada.
    pass

¿Cómo pegas el código y guardas cambios?

Puedes copiar el código desde tu repositorio (por ejemplo, un archivo “Función Lambda”), pegarlo en el editor y guardar. Recuerda que la interfaz muestra el resultado de las acciones en la parte superior; si algo no aparece, haz scroll hacia arriba.

¿Cómo configurar variables de ambiente, memoria y tiempo de espera?

Las variables de ambiente permiten personalizar el comportamiento sin tocar el código. En el ejemplo se define un mensaje y cuántas veces se imprimirá. Además, puedes añadir tags, elegir el rol de ejecución, ajustar RAM, timeout y la concurrencia.

  • Variables de ambiente: mensaje y número de repeticiones.
  • Ejemplo de valores: «Hola desde Platzi» y 6.
  • Tags: agrega un identificador (por ejemplo, nombre: función imprime).
  • Rol de ejecución: controla permisos de la función.

¿Cómo ajustas RAM, timeout y concurrencia?

  • Memoria: por omisión 128 MB; escalable hasta ~3 GB.
  • Ajuste automático: Amazon analiza ejecuciones históricas y asigna valores por omisión acordes.
  • Timeout: define el tiempo máximo de ejecución.
  • Concurrencia: por defecto hasta 1000 ejecuciones concurrentes. Puedes solicitar aumento a soporte si lo necesitas.
  • Distribución de llamadas: la mayoría no ocurre en el mismo segundo; rara vez se topa el límite si las invocaciones son secuenciales.

¿Cómo se ve la lógica de impresión?

La función imprime el mensaje tantas veces como se indicó en las variables de ambiente, validando que el número sea mayor que cero.

# Ejemplo de lógica interna
veces = 6  # tomado de variables de ambiente
mensaje = "Hola desde Platzi"  # tomado de variables de ambiente

if veces > 0:
    for _ in range(veces):
        print(mensaje)

¿Cómo probar la función y leer métricas de ejecución?

Crea un evento de prueba (por ejemplo, “Hola”) y usa el botón Probar. La consola mostrará el estado de la ejecución y métricas clave. La salida (los prints) se visualizará también en CloudWatch.

  • Crear evento de prueba y ejecutarlo.
  • Ver detalles: éxito o error, duración, milisegundos, memoria usada y memoria máxima.
  • Inspeccionar la salida con el mensaje repetido según lo configurado.
  • Recordatorio: se pueden ejecutar hasta un millón de invocaciones sin costo en el nivel gratuito.

¿Dónde ves la salida y cómo evitar confusiones?

  • La consola muestra el resultado en la parte superior tras guardar o probar.
  • Si no ves cambios, desplázate hacia arriba y revisa las secciones de resultado.
  • Para más detalle y trazas, consulta CloudWatch.

¿Tienes dudas o quieres compartir tus funciones en Python para AWS Lambda? Escribe en los comentarios y cuéntanos qué construyes. Pronto se abordará Elastic Beanstalk para desplegar sitios que escalen de forma dinámica.