Introducción a API Gateway
En este ejercicio introductorio, creará una API sin servidor. Las API sin servidor permiten centrarse en las aplicaciones, en lugar de dedicar tiempo a aprovisionar y administrar servidores. Puede completar este ejercicio en menos de 20 minutos y realizarlo dentro del nivel gratuito de AWS
En primer lugar, crea una función de Lambda con la consola de AWS Lambda. A continuación, crea una API HTTP mediante la consola de API Gateway. Luego, invoca su API.
nota
En este ejercicio se utiliza una API HTTP. API Gateway también es compatible con las API de REST, que incluyen más funciones. Para ver un tutorial sobre el uso de una API de REST, consulte Introducción a la consola de la API de REST.
Para obtener más información sobre las diferencias entre las API HTTP y las API de REST, consulte Elección entre las API de REST y las API de HTTP.
Cuando invoca su API HTTP, API Gateway enruta la solicitud a su función de Lambda. Lambda ejecuta la función de Lambda y devuelve una respuesta a API Gateway. API Gateway, a continuación, le devuelve una respuesta.
Para completar este ejercicio, necesita una cuenta de AWS y un usuario de AWS Identity and Access Management con acceso a la consola. Para obtener más información, consulte Configuración para usar API Gateway.
Temas
Paso 1: Crear una función Lambda
Usa una función de Lambda para el backend de su API. Lambda ejecuta su código solo cuando es necesario y escala de manera automática, desde unas pocas solicitudes por día hasta miles por segundo.
Para este ejemplo, utilice la función Node.js predeterminada de la consola de Lambda.
Para crear una función Lambda, realice el siguiente procedimiento:
Inicie sesión en la consola de Lambda en https://console.aws.amazon.com/lambda/
. -
Elija Create function (Crear función).
-
En Function name (Nombre de función), introduzca
my-function
. Para todas las demás opciones, utilice la configuración predeterminada.
-
Elija Create function (Crear función).
La función de ejemplo devuelve una 200
respuesta a los clientes y el texto Hello from
Lambda!
.
Puede modificar su función de Lambda, siempre y cuando la respuesta de la función se alinea con el formato que requiere API Gateway.
El código predeterminado de la función de Lambda debe ser similar al siguiente:
export const handler = async (event) => { const response = { statusCode: 200, body: JSON.stringify('Hello from Lambda!'), }; return response; };
Paso 2: crear una API HTTP
A continuación, cree una API HTTP. API Gateway también admite API REST y API WebSocket, pero una API HTTP es la mejor opción para este ejercicio. Las API de REST son compatibles con más funciones que las API HTTP, pero no las necesitamos para este ejercicio. Las API HTTP están diseñadas con características mínimas para que puedan ofrecerse a un precio más bajo. Las API WebSocket mantienen conexiones persistentes con los clientes para la comunicación dúplex completo, lo cual no es necesario para este ejemplo.
La API HTTP proporciona un punto de enlace HTTP para su función de Lambda. API Gateway enruta las solicitudes a su función de Lambda y, a continuación, devuelve la respuesta de la función a los clientes.
Para crear una API HTTP
Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway
. -
Aplique alguna de las siguientes acciones:
-
Para crear su primera API, para HTTP API (API HTTP), elija Build (Crear).
-
Si ha creado una API antes, elija Create API (Crear API) y, a continuación, elija Build (Crear) para HTTP API (API HTTP).
-
-
Para Integrations (Integraciones), elija Add integration (Agregar integración).
-
Elija Lambda.
-
En Función Lambda, introduzca
my-function
. -
En API name (Nombre de la API), escriba
my-http-api
. -
Elija Next (Siguiente).
-
Revise la ruta que API Gateway crea para usted y, a continuación, elija Next (Siguiente).
-
Revise la etapa que API Gateway crea para usted y, a continuación, elija Next (Siguiente).
-
Seleccione Create (Crear).
Ahora ha creado una API HTTP con una integración de Lambda que está lista para recibir solicitudes de clientes.
Paso 3: probar la API
A continuación, pruebe su API para asegurarse de que se encuentra en funcionamiento. Para mayor simplicidad, utilice un navegador web para invocar la API.
Para probar la API
Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway
. Elija la API.
-
Tenga en cuenta la URL de invocación de la API.
-
Copie la URL de invocación de la API y escríbala en un navegador web. Agregue el nombre de la función de Lambda a la URL de invocación para llamar a su función de Lambda. De forma predeterminada, la consola de API Gateway crea una ruta con el mismo nombre que su función de Lambda,
my-function
.La URL completa debería ser
https://
.abcdef123
.execute-api.us-east-2
.amazonaws.com/my-function
Su navegador envía una
GET
solicitud a la API. -
Verifique la respuesta de la API. Debería ver el texto
"Hello from Lambda!"
en el navegador.
(Opcional) Paso 4: limpiar
Para evitar costos innecesarios, elimine los recursos creados como parte de este ejercicio introductorio. Los siguientes pasos eliminan la API HTTP, la función de Lambda y los recursos asociados.
Para eliminar una API HTTP
Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway
. -
En la página API, seleccione una API. Seleccione Actions y, luego, Delete.
-
Elija Eliminar.
Para eliminar una función de Lambda
Inicie sesión en la consola de Lambda en https://console.aws.amazon.com/lambda/
. -
En la página Functions (Funciones), seleccione una función. Seleccione Actions y, luego, Delete.
-
Elija Eliminar.
Para eliminar el grupo de registro de una función de Lambda
-
En la consola de Amazon CloudWatch, abra la página de grupos de registro
. -
En la página Grupos de registro, seleccione el grupo de registro de la función (
/aws/lambda/my-function
). Elija Actions (Acciones) y, a continuación, elija Delete log group (Eliminar grupo de registro). -
Elija Eliminar.
Para eliminar el rol de ejecución de una función de Lambda
-
En la consola de AWS Identity and Access Management, abra la página Roles
(Roles). -
Seleccione el rol de la función, por ejempl,
my-function-
.31exxmpl
-
Elija Delete role (Eliminar rol).
-
Elija Sí, eliminar.
Puede automatizar la creación y la limpieza de los recursos de AWS mediante el uso de AWS CloudFormation o AWS SAM. Para obtener plantillas de AWS CloudFormation de ejemplo, consulte las plantillas de AWS CloudFormation de ejemplo
Pasos siguientes
Para este ejemplo, se utilizó la AWS Management Console para crear una API HTTP simple. La API HTTP invoca una función de Lambda y devuelve una respuesta a los clientes.
A continuación, se indican los pasos siguientes a medida que continúa trabajando con API Gateway.
Para obtener ayuda de la comunidad con Amazon API Gateway, consulte el foro de debate de API Gateway
Para obtener ayuda sobre API Gateway directamente de AWS, consulte las distintas opciones de soporte que se ofrecen en la página de AWS Support
Consulte también nuestras preguntas frecuentes