Come posso richiamare una funzione Lambda in modo asincrono dalla mia Gateway Amazon API?

2 minuti di lettura
0

Desidero richiamare una funzione AWS Lambda in modo asincrono anziché sincrono per la mia API Gateway Amazon API.

Risoluzione

API REST

Nell'integrazione non proxy Lambda, la funzione Lambda di back-end viene richiamata in modo sincrono per impostazione predefinita. È possibile configurare la funzione Lambda affinché un'integrazione non proxy Lambda venga richiamata in modo asincrono specificando "Event" (Evento) come tipo di chiamata Lambda.

1.    Apri la console API Gateway, scegli APIs (API), quindi scegli la REST API.

2.    In Resources (Risorse), scegli GET, quindi scegli Integration Request (Richiesta di integrazione).

3.    Per Integration type (Tipo di integrazione), scegli Lambda Function (Funzione Lambda).

4.    Espandi HTTP Headers (Intestazioni HTTP), quindi scegli Add header (Aggiungi intestazione).

5.    In Name (Nome), inserisci X-Amz-Invocation-Type.

6.    In Mapped from (Mappato da), inserisci "Event" (Evento).

7.    Nuova implementazione della REST API.

Per richiamare la funzione Lambda con l'opzione asincrona o sincrona, aggiungi un'intestazione InvocationType.

1.    Apri la console API Gateway, scegli APIs (API), quindi scegli la REST API.

2.    In Resources (Risorse), scegli GET, quindi scegli Method Request (Richiesta metodo).

3.    In Request Validator (Convalida richiesta), scegli l'icona di modifica, scegli l'elenco a discesa, quindi scegli Validate query string parameters and headers (Convalida parametri di stringa query e intestazioni ).

4.    Scegli l'icona di aggiornamento per salvare le modifiche.

5.    Espandi HTTP Headers (Intestazioni HTTP), quindi scegli Add header (Aggiungi intestazione).

6.    In Name (Nome), inserisci InvocationType, quindi scegli Required (Obbligatorio).

7.    In Integration Request (Richiesta di integrazione), espandi HTTP Headers (Intestazioni HTTP) e scegli Add header (Aggiungi intestazione).

8.    In Name (Nome), inserisci X-Amz-Invocation-Type.

9.     Per Mapped from (Mappato da), inserisci method.request.header.InvocationType.

10.    Nuova implementazione della REST API.

I client possono includere l'intestazione InvocationType: Event nelle richieste API per le chiamate asincrone o InvocationType: RequestResponse per le chiamate sincrone.

Per ulteriori informazioni, consulta la pagina Set up asynchronous invocation of the backend Lambda function (Configurazione della chiamata asincrona della funzione Lambda back-end).

API HTTP

Le API HTTP supportano solo le integrazioni proxy per Lambda. Non è possibile impostare l'intestazione X-Amz-Invocation-Type nell'integrazione API Gateway per le API HTTP. È possibile utilizzare due funzioni Lambda, una delle quali funge da proxy.

Configurazione di esempio:

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