¿Cómo puedo invocar una función de Lambda de forma asíncrona desde mi API de Amazon API Gateway?

3 minutos de lectura
0

Quiero invocar una función de AWS Lambda de forma asíncrona en lugar de síncrona para mi API de Amazon API Gateway.

Solución

API de REST

De manera predeterminada, en la integración de Lambda sin proxy, la función de Lambda del backend se invoca de forma síncrona. Puede configurar la función de Lambda para que una integración de Lambda sin proxy se invoque de forma asíncrona al especificar “Event” (Evento) como Lambda invocation type (Tipo de invocación de Lambda).

1.    Abra la consola de API Gateway, elija las API y, a continuación, elija su API de REST.

2.    En Resources (Recursos), elija GET y, a continuación, elija Integration Request (Solicitud de integración).

3.    En Integration type (Tipo de integración), elija Lambda Function (Función de Lambda).

4.    Expanda HTTP Headers (Encabezados HTTP) y, a continuación, seleccione Add header (Agregar encabezado).

5.    En Name (Nombre), escriba X-Amz-Invocation-Type.

6.    Para Mapped from (Mapeado desde), escriba “Event” (Evento).

7.    Vuelva a implementar la API de REST.

Para invocar la función de Lambda con la opción asíncrona o síncrona, agregue un encabezado de InvocationType.

1.    Abra la consola de API Gateway, elija las API y, a continuación, elija su API de REST.

2.    En Resources (Recursos), elija GET y, a continuación, elija Method Request (Solicitud de método).

3.    En Request Validator(Verificador de solicitudes), seleccione el icono de edición, elija la lista desplegable y, a continuación, seleccione Validate query string parameters and headers (Validar parámetros de cadena de consulta y encabezados).

4.    Seleccione el icono de actualización para guardar los cambios.

5.    Expanda HTTP Headers (Encabezados HTTP) y, a continuación, seleccione Add header (Agregar encabezado).

6.    En Name (Nombre), escriba InvocationType y, a continuación, elija Required (Obligatorio).

7.    En Integration Request (Solicitud de integración), expanda HTTP Headers (Encabezados HTTP), y, a continuación, elija Add header (Agregar encabezado).

8.    En Name (Nombre), escriba X-Amz-Invocation-Type.

9.     Para Mapped from (Mapeado desde), ingrese method.request.header.InvocationType.

10.    Vuelva a implementar la API de REST.

Los clientes pueden incluir el encabezado InvocationType: Event en las solicitudes de API para las invocaciones asíncronas o InvocationType: RequestResponse.

Para obtener más información, consulte Set up asynchronous invocation of the backend Lambda function (Configurar la invocación asíncrona de la función de Lambda del backend).

API de HTTP

Las API de HTTP solo admiten integraciones de proxy para Lambda. No puede configurar el encabezado X-Amz-Invocation-Type en la integración de API Gateway para las API de HTTP. Puede utilizar dos funciones de Lambda, una de las cuales actúa como proxy.

Configuración de ejemplo:

HTTP API --> Invoke Lambda1 synchronously --> Invoke Lambda2 asynchronously

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año