Desidero integrare un endpoint Amazon API Gateway con AWS Lambda, ma sto riscontrando qualche problema.
Breve descrizione
I seguenti motivi possono causare problemi di integrazione di un endpoint API Gateway con Lambda:
- API Gateway non dispone delle autorizzazioni per le funzioni Lambda.
- Si verifica una limitazione.
- Mappatura del codice di stato HTTP errata o mancante.
- Le eccezioni del servizio Lambda non vengono gestite.
Risoluzione
Nota: la seguente risoluzione utilizza API REST di API Gateway per la risoluzione dei problemi.
Prima di iniziare, attiva Amazon CloudWatch Logs per risolvere gli errori di API Gateway. Per Livello di log, scegli INFO in modo da generare i log di esecuzione per tutte le richieste.
API Gateway non dispone delle autorizzazioni per le funzioni Lambda
L'errore Autorizzazioni non valide sulla funzione Lambdasi verifica quando API Gateway non dispone delle autorizzazioni per richiamare la funzione Lambda. Per risolvere questo problema, consulta Come posso risolvere gli errori “Invalid permissions on Lambda function” delle API REST di API Gateway?
Nota: se utilizzi un altro servizio per distribuire le tue risorse API Gateway, come AWS CloudFormation, concedi le autorizzazioni alla risorsa AWS::Lambda::Permission.
Si verifica una limitazione
Se un numero elevato di richieste limita il servizio di backend, l'API di API Gateway potrebbe restituire un Errore interno del server. Attiva un meccanismo di backoff esponenziale e riprova, quindi riprova a eseguire la richiesta. Se il problema persiste, controlla il limite di quota di API Gateway. Se superi la quota di servizio, richiedi un aumento della quota.
Potresti inoltre ricevere errori Rate exceeded e 429 TooManyRequestsException a causa di problemi di limitazione della funzione Lambda. Per ulteriori informazioni, consulta Come posso risolvere la limitazione della funzione Lambda che restituisce errori “Rate exceeded” e 429 “TooManyRequestsException”?
Richiedi un aumento della quota per la concorrenza della funzione Lambda in modo che la funzione non rallenti.
La mappatura del codice di stato è errata o mancante
Quando la mappatura del codice di stato HTTP è errata o mancante, puoi ricevere un messaggio di errore 500 simile al seguente:
“Execution failed due to configuration error: Output mapping refers to an invalid method response: 2xx/4xx/5xx”.
Per risolvere questo errore, configura la richiesta e la risposta di integrazione dell'operazione API per restituire il codice di stato corretto.
Le eccezioni del servizio Lambda non vengono gestite
Se non gestisci le eccezioni del servizio Lambda, come il timeout di una funzione Lambda, ricevi un errore Lambda.Unknown. Per evitare il timeout di una funzione Lambda, rendi idempotente il codice della funzione Lambda.
Per ulteriori informazioni, consulta Modelli di gestione degli errori in Amazon API Gateway e AWS Lambda.
Informazioni correlate
Come posso risolvere gli errori 5xx per un'API REST di API Gateway?