Estoy usando la nueva HTTP Api (la que se presentó en diciembre de 2019) de AWS Api Gateway.
Solía trabajar con REST Api, que le permite activar funciones lambda asíncronas al agregar X-Amz-Invocation-Type:Event header.
La nueva HTTP Api no le permite especificar ese encabezado, ¿cómo puedo llamar a las funciones lambda de forma asíncrona?
gracias de antemano
Puede invocar una función de Lambda de forma asíncrona a través de API Gateway solo si la integración no es de proxy . De forma predeterminada, las API de HTTP están diseñadas para admitir solo integraciones de proxy para puntos finales de Lambda y HTTP , por lo que no es posible establecer el X-Amz-Invocation-Type en la configuración de integración de API Gateway.
Para invocar un Lambda de forma asincrónica a través de la API HTTP, puede usar dos funciones de Lambda, una de las cuales actúa como proxy de su función real.
API HTTP --> Invocar Lambda1 sincrónicamente --> Invocar Lambda2 asincrónicamente
A continuación se muestra un fragmento de código NodeJS de muestra para que Lambda1 invoque Lambda2 de forma asíncrona:
const params = { FunctionName: 'FUNCTION_NAME', InvocationType: 'Event', Payload: JSON.parse(event.body) // this is the event coming from API Gateway to Lambda1 }; await lambda.invoke(params).promise(); // await here is only going to wait for the HTTP request to be successful. Once Lambda2 is invoked, it will return immediately