Wie behebe ich die Fehler „ThrottlingException Rate exceeded“ in Amazon SNS?
Ich möchte den Fehler „ThrottlingException Rate exceeded“ in Amazon Simple Notification Service (Amazon SNS) beheben.
Kurzbeschreibung
Wenn Amazon-SNS-API-Anforderungen das API-Drosselungskontingent überschreiten, gibt Amazon SNS einen Fehler „ThrottlingException Rate exceeded“ zurück, der dem folgenden ähnelt:
„An error occurred (ThrottlingException) when calling the API operation: Rate exceeded“
Hinweis: Amazon SNS drosselt API-Aufrufe, um die Serviceleistung zu verbessern. Weitere Informationen zu API-Drosselungskontingenten in Amazon SNS findest du unter Endpunkte und Kontingente in Amazon Simple Notification Service.
Lösung
Identifizieren der gedrosselten API
Wenn das Ratenlimit das für einen API-Aufruf zugewiesene Limit überschreitet, erhältst du eine Fehlerantwort. Überprüfe die Fehlermeldung oder den Fehlerstapel, um die API-Aktion zu identifizieren, die gedrosselt wurde.
Verwende AWS-CloudTrail-Protokolle, um das Ereignis für den API-Aufruf zu überprüfen. Die unterstützten Ereignisse werden zusammen mit anderen AWS-Serviceereignissen als Teil des Ereignisverlaufs in einem CloudTrail-Ereignis aufgezeichnet. Weitere Informationen findest du unter Protokollieren von AWS-SNS-API-Aufrufen mithilfe von AWS CloudTrail.
Du kannst auch Amazon-CloudWatch-Metriken für Amazon SNS anzeigen. Verwende die Amazon-SNS-Nutzungsmetriken, um SNS-API-Aufrufe zu identifizieren, die das Ratenlimit erreicht haben.
Das Amazon-SNS-API-Drosselungskontingent überprüfen
Das Amazon SNS-API-Drosselungskontingent variiert je nach AWS-Region. Das Kontingent für Nachrichten pro Sekunde basiert auf der Anzahl der in einer SNS-Region veröffentlichten Nachrichten in Kombination mit den API-Anforderungen Publish und PublishBatch. Wenn du das Kontingent für Nachrichten pro Sekunde für deine Region überschreitest, erhältst du möglicherweise Drosselungsfehler. Weitere Informationen findest du unter Amazon-SNS-API-Drosselung.
Hinweis: Nach der Aktivierung der CloudTrail-Protokolle werden die SNS-API-Anforderungen Publish und PublishBatch in CloudTrail protokolliert. Der SNS-Ressourcentyp AWS::SNS::PhoneNumber wird jedoch nicht von CloudTrail protokolliert.
Exponentielles Backoff und Wiederholungsversuche verwenden
Um Drosselungsfehler zu vermeiden, empfiehlt es sich, exponentielles Backoff und Wiederholungsversuche zu verwenden, wenn du einen API-Aufruf tätigst, um die Intervalle zu staffeln. Stelle sicher, dass du API-Aufrufe im Laufe der Zeit verteilst. Plane Aktionen mit Randomisierung so, dass sie sich im Laufe der Zeit verteilen. Weitere Informationen findest du unter Exponentielles Backoff und Jitter und Verhalten bei Wiederholungsversuchen.
Verwende den folgenden allgemeinen Beispiel-Pseudocode für exponentielle Backoffs und Wiederholungsversuche:
MakeSDKRequest() { attempts = 0 loop { GetSendToken() response = SNSAPIRequest() RequestBookkeeping(response) if not Retryable(response) return response attempts += 1 if attempts >= MAX_ATTEMPTS: return response if not HasRetryQuota(response) return response delay = ExponentialBackoff(attempts) sleep(delay) } }
Eine Kontingenterhöhung anfordern
Wenn du exponentielles Backoff und Wiederholungsversuche implementiert hast, aber weiterhin „ThrottlingException Rate exceeded“-Fehler erhältst, stelle einen Antrag auf Erhöhung des SNS-Kontingents.
Hinweis: Du kannst eine Erhöhung des weichen Limits beantragen, aber du kannst das harte Kontingentlimit nicht erhöhen. Weitere Informationen findest du unter Service Quotas.
- Themen
- Application Integration
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 9 Monaten