AWS Lambda + API Gateway + Cognito. Parte II.

Siguiendo con esta serie de entradas, primero vimos cómo crear funciones AWS Lambda. Ahora vamos a ver cómo podemos hacer llamadas desde cualquier lugar utilizando API Gateway.

Nos iremos a la consola de AWS y buscaremos el servicio de API Gateway. Una vez ahí, vamos a ver 4 tipos de API.

Nosotros vamos a elegir la opción de API REST, ya que es lo que precisamente queremos y además deseamos que sea accesible desde cualquier lugar.

Una vez pinchamos en Crear, en la siguiente pantalla vamos a seleccionar la API REST y le diremos que queremos crear una API nueva. Le daremos un nombre a nuestra API y elegiremos como Tipo de punto de enlace: Regional.

Una vez creamos nuestra nueva API, lo primero que necesitamos hacer es crear un nuevo recurso.

Le daremos un nombre a nuestro recurso y la ruta a partir de la cual podremos acceder a él.

A continuación, debemos crear un método (GET, POST…) para poder realizar la llamada a nuestra API REST. El método lo crearemos dentro del recurso que hemos creado. Debemos elegir el tipo de integración, en este caso queremos que sea la función Lambda que hemos creado, la región elegiremos la que hay seleccionada, ya que es donde estamos creando todos los recursos y en Función Lambda elegiremos la función que habíamos creado (según vayamos escribiendo, nos aparecerán las distintas opciones de que dispongamos, en este caso sólo aparecerá la función que habíamos creado myFunction).

Una vez que está creada, veremos los pasos por los que pasa nuestra llamada.

Más adelante veremos cómo modificar la Solicitud de método para añadir un Autorizador y que no se pueda llamar a la API si no estás autorizado.

Una vez tenemos creada nuestro método, dentro de Acciones elegiremos Implementar la API para poder desplegarla. Elegiremos una nueva etapa, a la cual le daremos un nombre y la implementaremos.

Ahora ya tenemos nuestra Etapa implementada y podemos ver dentro del método POST la URL de la llamada desde la cual podemos realizar nuestras pruebas.

Vamos ahora a probar que todo funcione correctamente. Yo voy a usar Postman para realizar las pruebas, pero se puede utilizar la aplicación que más os guste para testear vuestra nueva API Rest.

Vemos como ahora, haciendo una llamada desde nuestra propia máquina con Postman ,hacia la URL de nuestra nueva API REST, hemos obtenido una respuesta correcta por parte de AWS (la respuesta es la que habíamos implementado en el último ejemplo, donde nos devolvía un array creado con numpy, aunque ya sabemos que podemos implementar lo que necesitemos).

Lo que ha ocurrido es que nosotros hemos llamado a nuestra nueva API REST a través del método POST que hemos creado en API Gatewa, el cual se integra con nuestra función Lambda. Ésta se ha ejecutado, ha devuelto el resultado a API Gateway y finalmente nos ha devuelto el resultado.

En la próxima entrada, veremos cómo podemos autenticarnos utilizando el servicio de Cognito y finalmente lo integraremos con nuestra API REST para que solo los usuarios autorizados puedan realizar llamadas a nuestra función Lambda a través de API Gateway.

Categorías