Lambda and API Gateway
Con este ejercicio se busca explicar de manera práctica como crear una función Lambda y consumir esta función mediante el API Gateway.
Paso 1. Crear la función Lambda
- Debes iniciar sesión en la consola de Lambda: https://console.aws.amazon.com/lambda.
- Dar clic en el botón crear una función
- Escogemos la opción crear desde cero, ingresamos el nombre de la función, en este caso será my-function y seleccionamos el lenguaje de programación.
- Dar clic en el botón crear una función
Por defecto el código de la función será la siguiente:
export const handler = async (event) => {
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
Realizaremos unas modificaciones, para recibir parametros y obtener un mensaje personalizado, debe quedar de la siguiente forma:
export const handler = async (event) => {
const queryParams = event.queryStringParameters
const response = {
statusCode: 200,
body: JSON.stringify('Hola ' + queryParams.name + 'bienvenido!. Felicitaciones, estas usando Lambda Function.'),
};
return response;
};
Nótese que para capturar los parámetros enviado desde un “cliente” usamos queryStringParameters. En este caso, tenemos un parámetro llamada name.
Paso 2. Crear HTTP API
- Debes iniciar sesión en la consola de API Gateway: https://console.aws.amazon.com/apigateway.
- Dar clic en el botón crear API
- API Gateway tiene varias tipos de API (API HTTP, API de WebSocket, API Rest y API Rest privada). Escogemos el tipo API HTTP.
- En Integraciones, dar clic en Agregar Integraciones, seleccionamos Lambda.
- Escogemos la función Lambda que se creó en el Paso 1
- Agregamos un nombre a la API, en este caso la llamaremos my-http-api y clic en l botón siguiente.
- En Configuración de rutas, para este caso seleccionamos el método POST y clic en el botón siguiente
- En Configuración de etapas, dejamos por defecto las configuraciones y clic en el botón siguiente.
- En Resumen general clic en crear
El resultado de crear la API
Nótese que la URL de invocación es la siguiente: https://n91801jko8.execute-api.us-east-2.amazonaws.com
Para poder consumir esta API, a la URL de invocación se le debe agregar la ruta que se le asigno cuando seleccionamos el método para consumir la API: url_invocacion/ruta
Debe quedar de la siguiente forma: https://n91801jko8.execute-api.us-east-2.amazonaws.com/my-function
Paso 3. Probar el API
Para invocar el API y ejecutar la función Lambda, vamos a utilizar un herramientas para probar APIS, en este caso INSOMNIA.
Nótese que realizamos la petición con el método POST (en caso se pruebe con otro método, retornará un 404), agregamos los parámetros que recibirá la función Lambda y obtenemos el mensaje personalizado.