Introducción a Amazon API Gateway con AWS Lambda

Introducción a Amazon API Gateway con AWS Lambda

Nodo de origen: 1860150

Introducción

¿Qué es una API?

En términos simples, API es un mensajero; Entendamos esto con algunos ejemplos. Digamos que tienes hambre y necesitas cocinar algo en casa. Si quiere hacer fideos, simplemente saque los ingredientes de la alacena, encienda la estufa y hágalos usted mismo. Este es un programa que hace algo por sí mismo con sus propios recursos. Pero supongamos que quiere pizza: no tiene los ingredientes y el horno de su casa no es tan adecuado para hacer una buena corteza crujiente. Así que vas a una pizzería en su lugar. Pero a diferencia de tu casa, no puedes simplemente ir a la cocina y comenzar a usar sus ingredientes para hacer una pizza. ¡No quieren que tus manos sucias cubran sus cosas! ¿Entonces que vas a hacer? Tienes que ir al mostrador y hacer un pedido: habrá un menú que enumera qué pizzas puedes pedir y qué ingredientes u otras opciones puedes elegir. Esta es una API.

Una interfaz de programación de aplicaciones (API) es un conjunto de reglas que especifican cómo deben interactuar dos programas de software.

Una API permite que un programa de software acceda a la funcionalidad de otro programa de software. Por ejemplo, si tiene un programa de software que necesita recuperar datos de Internet, puede usar una API para solicitar esos datos de un servidor. Luego, el servidor responderá con los datos solicitados y el programa de software puede usarlos según sea necesario.

Las API se utilizan para permitir que diferentes programas de software se comuniquen entre sí y compartan datos y funciones. Son una parte importante del desarrollo de software moderno, ya que permiten que diferentes sistemas trabajen juntos y permiten la creación de aplicaciones de software más complejas y potentes.

API HTTP

HTTP API es un tipo de API que utiliza el protocolo HTTP para enviar y recibir datos. Permite que los programas de software envíen y reciban datos mediante solicitudes y respuestas HTTP. Estas solicitudes y respuestas pueden estar en varios formatos, como texto sin formato, JSON o XML. Se utilizan comúnmente en una amplia gama de aplicaciones, incluidas aplicaciones web, aplicaciones móviles y microservicios. Estas API son relativamente más baratas que las API REST y tienen menos funcionalidades que las posteriores.

API REST

REST API es un tipo de API que sigue un conjunto de principios arquitectónicos llamados REST (Representational State Transfer). REST es un estilo de arquitectura de software que define un conjunto de restricciones para crear API web.

API con estado

Una API con estado es una API que mantiene información sobre cada solicitud de cliente y utiliza esta información para procesar solicitudes posteriores. Esto significa que la API almacena datos sobre cada solicitud, como los parámetros de la solicitud, en una sesión del lado del servidor. Estos datos se utilizan luego para procesar solicitudes posteriores del mismo cliente.

API sin estado

Una API sin estado, por otro lado, no mantiene información sobre las solicitudes de los clientes. Procesa cada solicitud de forma independiente, sin almacenar ningún dato sobre solicitudes anteriores. Esto significa que la API no mantiene una sesión del lado del servidor y no utiliza datos de solicitudes anteriores para procesar solicitudes posteriores.

Diferencias clave entre las API con estado y sin estado

A continuación se muestran algunas diferencias clave entre las API con estado y sin estado:

API CON ESTADO

API SIN ESTADO

1. Requerir una sesión del lado del servidor para almacenar datos sobre solicitudes de clientes 1. No requiere una sesión del lado del servidor para almacenar datos sobre solicitudes de clientes
2. A veces, estas pueden ser más lentas que las API sin estado porque requieren y almacenan datos, lo que lleva tiempo. 2. Las API sin estado son más rápidas porque no requieren ni almacenan datos sobre las solicitudes.
3. Las API con estado no son fáciles de escalar  3. Más fáciles de escalar ya que no necesitan mantener datos sobre solicitudes anteriores.
4. Generalmente se consideran menos seguras que las API sin estado 4. Por lo general, estos se consideran más seguros.

¿Qué es la puerta de enlace API de Amazon?

Amazon API Gateway es un servicio de AWS que se utiliza para crear, mantener y monitorear API con estado (websocket) y sin estado (HTTP y REST). Podemos usar estas APIs para acceder a:

  1. Cualquier servicio de AWS
  2. Los datos almacenados en la nube de AWS (como un depósito S3)
  3. Cualquier otro servicio web.

Si es un desarrollador de API, también puede hacer sus API fácilmente para desarrolladores de terceros.

Hay principalmente dos tipos de usuarios de AWS API Gateway.

  1. i) Desarrolladores de API que crean e implementan una API para habilitar la funcionalidad requerida en API Gateway
  2. ii) Desarrolladores de aplicaciones que son clientes del desarrollador de la API.

Arquitectura de puerta de enlace API de Amazon

arquitectura

Esta arquitectura ilustra cómo se pueden crear aplicaciones sin servidor con una experiencia de desarrollador coherente e integrada. Desde los usuarios finales hasta los centros de datos, API Gateway maneja todas las tareas involucradas, como aceptar y procesar miles de llamadas simultáneas, gestión de tráfico, autorización, monitoreo, control de acceso, etc.

Características de la puerta de enlace API de Amazon

  1. Admite API con estado y sin estado. (Ejemplos: Websocket, HTTP y REST).
  2. Los potentes mecanismos de autenticación incluyen AWS Identity, las políticas de administración de acceso y el autorizador de Lambda.
  3. Portal para desarrolladores donde los desarrolladores de API pueden publicar sus API.
  4. Registro de ejecución y acceso para CloudWatch, incluida la opción de configurar alarmas.
  5. Integración con otros servicios de AWS como AWS Lambda y AWS Kinesis.
  6. La integración con AWS WAF se usa para la protección contra vulnerabilidades web, y AWS X-Ray se usa para comprender y enfatizar las latencias de rendimiento.

Primeros pasos con Amazon API Gateway

Ahora vamos a crear una API sin servidor. En una API sin servidor, podemos concentrarnos en nuestras aplicaciones en lugar de perder tiempo administrando servidores. Funciona así:

  • API es invocada por el cliente
  • API envía solicitud a lambda
  • Lambda ejecuta la función lambda y envía el resultado a la API
  • Después de recibir el resultado de lambda, la API responde al cliente

http API

Paso 1: crea una función lambda

La función Lambda se utiliza para el backend de nuestra API. Lambda ejecuta el código solo cuando es necesario. También escala automáticamente desde unas pocas solicitudes por día hasta miles de solicitudes por segundo.

crear función lambada

Creando una función lambda:

1) Vaya a la consola lambda en https://console.aws.amazon.com/lambda

2) Haga clic en Crear función.

3) Ingrese "my-function" como el nombre de la función.

4) Elija Python 3.9 como tiempo de ejecución.

5) Para esta función, no necesitaremos cambiar nada en la pestaña Permisos y Configuración avanzada ya que los permisos predeterminados son suficientes para esta demostración.

4) Haga clic en Crear función.

PASO 2: creación de una API HTTP

API de Amazon

La API de HTTP proporciona un punto de enlace HTTP para su función de Lambda. Funciona así:

  • El cliente envía una consulta a la API HTTP
  • La API activa lambda que luego ejecuta la función lambda
  • Lambda envía el resultado a la API
  • API responde al cliente con la respuesta recibida

Pasos para crear una API HTTP

1) Visite la consola de API Gateway en https://console.aws.amazon.com/apigateway

2) Haga clic en Construir para crear su primera API HTTP

3) Haga clic en Agregar integración para la integración

4) Seleccione Lambda.

5) Ingrese su función lambda my-function.

6) Para el nombre de API, ingrese my-http-api.

7) Haga clic en Siguiente.

8) Revise la ruta creada para usted y luego elija Siguiente.

9) Revise la etapa creada para usted y luego elija Siguiente.

10) Haga clic en Crear.

PASO 3 Prueba tu API –

A continuación, debemos probar nuestra API para asegurarnos de que funciona. Para ello utilizaremos un navegador web para invocar nuestra API.

API de Amazon

Para probar nuestra API

  1. Vaya a la consola de API Gateway en https://console.aws.amazon.com/apigateway
  2. Seleccione su API.
  3. Anote la URL de invocación de su API. (ver la imagen de arriba)
  4. Copie la URL de invocación de su API y péguela en un navegador web. Una la URL de invocación y el nombre de su función lambda para llamar a su función Lambda. La consola de API Gateway crea una ruta con el nombre de su función de Lambda "my-function" de forma predeterminada. 

    La URL completa debe verse como https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function. Cuando carga esta URL, su navegador envía una solicitud GET a la API

  1. Debería ver el texto "¡Hola de Lambda!" en tu navegador. Por lo tanto, se verifica la respuesta de su API.

API de Amazon

Conclusión

Hemos creado nuestra primera API HTTP utilizando Amazon API Gateway y AWS Lambda. Además, podemos explorar varios casos de uso del mismo y, de manera similar, también podemos crear una API REST, que proporciona más funcionalidades.

¿Te ha gustado este artículo? Cuéntanos tus pensamientos en el comentario a continuación. Además, no olvide mencionar qué artículo le gustaría leer a continuación.

Sello de tiempo:

Mas de Analítica Vidhya