Desidero invocare in modo asincrono una funzione AWS Lambda per la mia API di Gateway Amazon API. Non desidero invocare la funzione in modo sincrono.
Risoluzione
REST API
Nell'integrazione senza proxy di Lambda, Lambda invoca in modo sincrono la funzione di backend per impostazione predefinita. Per invocare in modo asincrono la funzione di backend, imposta il tipo di invocazione Lambda su Event.
Completa i seguenti passaggi:
- Apri la console API Gateway.
- Scegli API, quindi scegli la REST API.
- Per Risorse, scegli GET, quindi scegli Richiesta di integrazione.
- Per Tipo di integrazione, scegli Funzione Lambda.
- Espandi i parametri delle intestazioni delle richieste URL, quindi scegli Aggiungi parametro dell'intestazione della richiesta.
- In Nome, inserisci X-Amz-Invocation-Type.
- In Mappato da, inserisci Event.
- Distribuisci nuovamente la REST API.
Per invocare la funzione Lambda con l'opzione asincrona o sincrona, aggiungi un'intestazione InvocationType.
Completa i seguenti passaggi:
- Apri la console API Gateway.
- Scegli API, quindi scegli la REST API.
- Per Risorse, scegli GET, quindi scegli Richiesta di metodo.
- Per Validatore richiesta, scegli l'icona Modifica.
- Scegli l'elenco a discesa, quindi scegli Convalida parametri di stringa query e intestazioni.
- Scegli l'icona Salva.
- Espandi le intestazioni delle richieste HTTP, quindi scegli Aggiungi intestazione.
- In Nome, inserisci InvocationType, quindi scegli Obbligatorio.
- In Richiesta di integrazione, espandi i parametri delle intestazioni delle richieste URL, quindi scegli Aggiungi parametro dell'intestazione della richiesta.
- In Nome, inserisci X-Amz-Invocation-Type.
- Per Mappato da, inserisci method.request.header.InvocationType.
- Distribuisci nuovamente la REST API.
I client possono includere l'intestazione InvocationType: Event nelle richieste API per invocazioni asincrone o l'intestazione InvocationType: RequestResponse per invocazioni sincrone.
API HTTP
Le API HTTP supportano solo integrazioni proxy per Lambda. Non puoi impostare l'intestazione X-Amz-Invocation-Type nell'integrazione di API Gateway per API HTTP. Utilizza invece due funzioni Lambda di cui una funge da proxy. Per invocare una funzione Lambda da un'altra, utilizza l'API Invoke e imposta InvocationType su Event nella prima funzione Lambda.
Esempio di configurazione:
L'API HTTP invoca Lambda1 in modo sincrono, quindi Lambda1 invoca Lambda2 in modo asincrono.