Come posso risolvere i problemi relativi al codice di stato 500 “errore interno del server” per gli endpoint del Gateway API con integrazione Lambda?
Ho inviato una richiesta HTTP al mio endpoint API di Gateway Amazon API che si integra con AWS Lambda (ad esempio, /lambda-resource GET). Ho ricevuto una risposta con il codice di stato 500 con il seguente errore: {"messaggio”: “Errore interno del server"} In che modo posso risolvere il problema?
Breve descrizione
Questo errore potrebbe essere dovuto a:
- Autorizzazioni per le funzioni Lambda
- Problemi di limitazione (della larghezza di banda della rete)
- Mappatura del codice di stato HTTP errata o mancante
- Errori non gestiti
Risoluzione
Prima di iniziare, segui i passaggi per attivare i file di log Amazon CloudWatch per la risoluzione degli errori di Gateway API.
Nota: per il livello di registro, scegliere INFO per generare registri di esecuzione per tutte le richieste.
Autorizzazioni per le funzioni Lambda
L'errore “Autorizzazioni non valide per la funzione Lambda” si verifica se il Gateway API non dispone delle autorizzazioni per richiamare la funzione Lambda. Come si risolvono gli errori "Autorizzazioni non valide per la funzione Lambda” delle REST API di Gateway API?
Nota: se hai usato un altro servizio, come AWS CloudFormation, per distribuire le tue risorse di Gateway API, assicurati di avere le autorizzazioni per la risorsaAWS::autorizzazione::Lambda.
Problemi di limitazione (della larghezza di banda della rete)
Se il servizio di backend è limitato a causa di un numero elevato di richieste, l'API di Gateway Amazon API potrebbe restituire un messaggio di errore "internal server error" (errore interno del server). Puoi attivare un meccanismo di backoff esponenziale e di ripetizione dei tentativi e riprovare la richiesta. Se il problema persiste, controlla la quota limite del Gateway API. Se hai superato il limite della quota del servizio, puoi richiedere un aumento della quota.
Potresti anche ricevere i messaggi di errore "Frequenza superata" e 429 "TooManyRequestsException" a causa di problemi di limitazione della funzione Lambda. Per ulteriori informazioni, consultaCome posso risolvere i problemi di limitazione della funzione Lambda con gli errori "Frequenza superata" e 429 "TooManyRequestsException"?
Puoi anche richiedere un aumento del limite di concorrenza della funzione Lambda in modo che la funzione non venga limitata. Per istruzioni, consultaCome richiedo un aumento dei limiti di concorrenza per la mia funzione Lambda?
Mappatura del codice di stato HTTP errata o mancante
Anche la mappatura del codice di stato HTTP errata o mancante può causare errori 500 simili al seguente:
“Esecuzione non riuscita a causa di un errore di configurazione: la mappatura dell'output si riferisce a una risposta del metodo non valida: 2xx/4xx/5xx”.
Per risolvere questo errore, assicurati che esista una risposta del metodo API per il codice di stato restituito dal backend e che sia mappata correttamente.
Errori non gestiti
Gli errori non gestiti in Lambda indicano che la funzione è in timeout a causa di errori nel codice della funzione. Per evitare questo errore, assicurati che il codice della funzione Lambda sia idempotente.
Puoi anche utilizzare lo strumento di debug AWS X-Ray per ottenere maggiori dettagli sul tempo necessario per completare le diverse sezioni del codice della tua funzione.
Per ulteriori informazioni, consulta la pagina Modelli di gestione degli errori in Gateway Amazon API e AWS Lambda.
Informazioni correlate
Contenuto pertinente
- Come posso risolvere gli errori dei codici di stato HTTP 502 e HTTP 500 (lato server) di AWS Lambda?AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 2 anni fa