Como crear una función de Lambda en AWS en 5 minutos

Si acabas de empezar a trabajar con AWS probablemente lo hayas hecho utilizando la consola de administración.  Si todavía no empiezas, probablemente esta sea la forma en la que aprendas. Si no sabes qué demonios es Lambda, te aconsejo que vayas primero a revisar bien qué es y cómo funciona y regreses en cuánto termines.

Utilizar la consola de administración es la forma por default de crear cualquier servicio y por ende es la mejor manera de empezar a entender como funcionan los servicios de AWS.

Creando una Lambda con la Consola de administración de AWS (AWS Management Console)

  1. En el menú principal busca el servicio de Lambda. Tienes varias opciones donde encontrarlo:

2. Una vez en el menú de Lambda asegurate de seleccionar la opción de ‘Funciones’

Captura de pantalla de AWS remarcando en el panel izquierdo de AWS Lambda la opción: Funciones.

3. Una vez seleccionada se mostrara una lista con las funciones que tienes creadas. En mi caso no tengo ninguna por lo que no aparece gran cosa. Haz click en la opción de ‘Crear una Función’

Captura de pantalla de AWS remarcando en la ventana de Funciones el botón derecho que dice: Crear una función.

4. Para este ejemplo selecciona la opción de ‘Crear desde cero’

5. Configura la información básica de la función Lambda. En este caso estoy creando una función llamada ‘test-lambda’ , utilizando Node.js 14.x y utilizando un rol pre-existente que sirve para dar a la función permisos básicos para poder ejecutarse.
Tu puedes seleccionar el lenguaje que desees de la lista que ofrece AWS y a su vez si no cuentas con un rol pre-existente puedes utilizar la opción de crear uno nuevo.

Una vez configurada selecciona la opción de ‘Crear una Función’

6. Una vez creada la función, AWS muestra la consola para configurar la Lambda que creaste. Así como configurar otras cosas como VPNs, variables de entorno, uso de memoria, etc.

Captura de pantalla de AWS mostrando el panel de la función creada: "test-lambda".

7. En el caso de Node.js, AWS incluye un editor en la misma consola donde puedes ver y editar el código generado. Algunos otros lenguajes como Java, no incluyen esta opción. Por lo que para hacer cualquier cambio tendrás que usar forzosamente la opción de ‘Cargar desde’. Con esta opción puedes seleccionar entre subir un archivo .zip (o .jar en el caso de Java) directamente o subirlo desde Amazon S3, el servicio de almacenamiento de archivos de AWS

Captura de pantalla de AWS mostrando el panel de "test-lambda". En la sección de Código, Código Fuente, se esta remarcando  la opción de: "Cargar desde".

8 . Para ejecutar la función selecciona la opción de ‘Test’

Captura de pantalla de AWS mostrando el panel de "test-lambda". En la sección de Código Fuente, se esta remarcando el botón de: "Test".

9 . Lambda abre una opción para configurar un evento de prueba. Los eventos de prueba son útiles para simular entradas de datos específicas con tus funciones.
En este caso no importa dado que no estamos leyendo datos de entrada, sin embargo Lambda necesita un evento de prueba configurado por default. Dale un nombre y selecciona ‘Crear’

Captura de pantalla de AWS mostrando el panel de "Configurar un evento de prueba". Se esta remarcando el botón de: "Crear".

10 . Una vez creado el evento de prueba, vuelve a seleccionar ‘Test’

Captura de pantalla de AWS mostrando en el panel de "test-lambda", que el evento de prueba fue creado exitosmanete. En la sección de Código Fuente, se esta remarcando el botón de: "Test".

11 . Lambda te muestra los resultados de la ejecución. Incluye el nombre de la prueba, la respuesta generada por la función y los logs de ejecución, los cuales contienen la información de tiempo de corrida y memoria utilizada. Estos últimos son importantes ya que AWS se basa en ellos para cobrar el uso de la función.
*No te preocupes por temas de pago. Funciones así de simples no generan cargos a tu cuenta

Captura de pantalla de AWS mostrando en el panel de "test-lambda", que se ejecutó correctamenete la función.

Ok, ya tienes la función y… ¿ahora qué? Bueno es obvio que una función así no te sirve de nada, para que sea útil tienes que conectarla con algun otro servicio. Uno de las formas más populares es con un API.
AWS tiene un servicio para esto también: API Gateway

Y porsupuesto crear la función así para un ejemplo esta bien, pero ¿qué pasa cuando tienes miles de funciones? Tienes que dar mil clicks antes de poder desplegar tu código? No necesariamente, para esos casos existen otras opciones interesantes como CloudFormation o el CDK (Cloud Development Kit)