Wie kann ich die Fehler „429 Too Many Requests“ oder „Limit Exceeded“ für meine API Gateway API beheben?
Ich habe beim Senden von Anfragen an meine Amazon API Gateway-API die Fehler „429 Too Many Requests“ oder „Limit Exceeded“ erhalten. Wie können diese Fehler behoben werden?
Kurzbeschreibung
API Gateway verfügt über Kontingente auf Kontoebene pro Region. Die Drosselquote beträgt 10.000 Anfragen pro Sekunde (RPS) mit einer zusätzlichen Burst-Kapazität, die vom Token-Bucket-Algorithmus bereitgestellt wird. Die maximale Bucket-Kapazität beträgt 5.000 Anfragen pro Konto und Region. Einstellungen im Zusammenhang mit API Gateway-Drosselung werden in der folgenden Reihenfolge angewendet:
- Einschränkungsgrenzen pro Client oder Methode, die Sie für eine API-Stufe in einem Nutzungsplan festlegen.
- Einschränkungsgrenzen pro Methode, die Sie für einen API-Schritt festlegen.
- Drosselung auf Kontoebene pro Region.
- Regionale AWS-Drosselung.
Bei Überschreitung des Einschränkungslimits oder Kontingents wird die Fehlermeldung „429 Too Many Requests“ oder „Limit Exceeded“ zurückgegeben.
Weitere Informationen finden Sie unter So werden die Einstellungen für Einschränkungslimits in API Gateway angewendet.
Behebung
Bevor Sie beginnen, stellen Sie sicher, dass Sie die Anweisungen zum Aktivieren von Amazon CloudWatch Logs zur Fehlerbehebung bei API Gateway befolgt haben. Stellen Sie sicher, dass Sie ERROR auswählen, um Ausführungsprotokolle nur für Anforderungen an Ihre API zu generieren, die zu einem Fehler führen. Zeigen Sie dann protokollierte API-Anfragen und -Antworten mithilfe der CloudWatch-Konsole an.
Fehler „429 Too Many Requests“
Überprüfen Sie die Rate oder das Burst-Limit für Einschränkungslimits pro Client oder Methode, die Sie für die API-Stufe für Ihren Nutzungsplan festgelegt haben. Wenn die Raten- oder Burst-Grenzwerte überschritten werden, protokolliert die CloudWatch-Ausführung einen Fehler, der dem folgenden ähnelt:
(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
Um diesen Fehler zu beheben, verwenden Sie Wiederholungen und einen exponentiellen Backoff-Algorithmus mit Jitter und senden Sie dann Ihre API-Anfrage erneut.
Weitere Informationen finden Sie unter Exponentieller Backoff und Jitter.
Fehler „Limit Exceeded“
Dieser Fehler könnte darauf hinweisen, dass das Kontingentlimit für Ihren API Gateway Nutzungsplan überschritten wurde. Wenn das Kontingentlimit überschritten wird, protokolliert die CloudWatch-Ausführung einen Fehler bei Überschreitung des Kontingentlimits ähnlich dem folgenden:
(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
Um diesen Fehler zu beheben, befolgen Sie die Anweisungen zur Erweiterung des verbleibenden Kontingents.
Ähnliche Informationen
Wie suche ich in meinen CloudWatch-Protokollen API-Gateway-REST-API-Fehler?
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr