Come posso risolvere gli errori "429 Troppe richieste" o "Limite superato" della mia API gateway?

Ultimo aggiornamento: 26/09/2022

Ho ricevuto gli errori "429 Troppe richieste" o "Limite superato" durante l'invio di richieste alla mia Gateway Amazon API. Come posso risolvere questi errori?

Breve descrizione

API Gateway ha quote a livello di account per regione. La quota di limitazione è di 10.000 richieste al secondo (RPS) con una capacità di espansione aggiuntiva fornita dall'algoritmo del bucket token. La capacità massima del bucket è di 5.000 richieste per account e regione. Le impostazioni relative alla limitazione (della larghezza di banda della rete) di Gateway API vengono applicate nel seguente ordine:

Il superamento del limite o della quota restituisce una risposta di errore "429 Troppe richieste" o "Limite superato".

Per ulteriori informazioni, consulta Modalità di applicazione delle impostazioni di limitazione in API Gateway.

Risoluzione

Prima di iniziare, assicurati di aver seguito le istruzioni per attivare i file di log Amazon CloudWatch per la risoluzione dei problemi di API Gateway. Assicurati di scegliere ERRORE per generare i log di esecuzione solo per le richieste all'API che generano un errore. Quindi, visualizza le richieste e le risposte delle API registrate utilizzando la console CloudWatch.

Errore "429 Troppe richieste"

Verifica i limiti di velocità o burst per cliente o per metodo che hai impostato per la fase API del tuo piano di utilizzo. Quando vengono superati i limiti di velocità o burst, l’esecuzione di CloudWatch registra un errore di superamento del limite di accelerazione simile al seguente:

(f277a0b4-2bcd-41b3-8e43-4de770663ffb) API Key 
**********************************
F0yrv6 exceeded throttle limit for API
 Stage rohkz08x02/dev: Key throttle limit exceeded for Usage Plan ID 
nnpegc, RestApi rohkz08x02, Stage dev, Resource f646q2, HttpMethod GET. 
Limit: 5.00 Burst: 10

Per risolvere questo errore, usa nuovi tentativi e un algoritmo di backoff esponenziale con jitter, quindi invia nuovamente la richiesta API.

Per ulteriori informazioni, consulta Backoff esponenziale e jitter.

Errore "Limite superato"

Questo errore potrebbe indicare che il limite di quota è stato superato per il piano di utilizzo di API Gateway. Quando il limite di quota viene superato, l'esecuzione di CloudWatch registra un errore simile al seguente:

(7b819c41-e0a0-433a-883e-bc461fd70fd6) API Key 
**********************************
F0yrv6 exceeded quota limit for API 
Stage rohkz08x02/dev: Key quota exhausted for Usage Plan ID nnpegc. Q
Limit: 500 Period: DAY

Per risolvere questo errore, segui le istruzioni per estendere la quota rimanente.