Wie kann ich Route-53-API-Drosselungsfehler vermeiden?

Lesedauer: 2 Minute
0

Ich erhalte API-Drosselungsfehler in Amazon Route 53.

Kurzbeschreibung

Wenn Sie Massen-API-Aufrufe an Route 53 ausführen, erhalten Sie möglicherweise einen HTTP 400 (Bad Request)-Fehler.

Ein Antwortheader mit einem Code-Elementwert von Drosselung und einem Nachrichten-Elementwert von Rate überschritten weist auf eine Ratendrosselung hin. Eine Ratendrosselung tritt auf, wenn die Anzahl der API-Anfragen die feste Grenze von fünf Anfragen pro Sekunde und Konto überschreitet.

Wenn Route 53 die Anfrage nicht vor der nächsten Anfrage für dieselbe gehostete Zone verarbeiten kann, lehnt sie nachfolgende Anfragen mit einem weiteren HTTP 400-Fehler ab. Der Antwortheader enthält die beiden folgenden Elemente:

  • Ein Code-Element mit dem Wert PriorRequestNotComplete
  • Ein Nachrichten-Element mit dem Wert die Anfrage wurde abgelehnt, da Route 53 noch eine vorherige Anfrage verarbeitete.

API-Aufrufe von AWS Identity and Access Management (IAM)-Benutzern desselben Kontos werden bei der globalen Ratendrosselung für das Konto berücksichtigt. API-Aufrufe dieser IAM-Benutzer wirken sich auch auf API-Aufrufe aus, die über die AWS-Managementkonsole getätigt werden.

Lösung

Hinweis: Wenn Sie beim Ausführen von Befehlen der AWS Command Line Interface (AWS CLI) Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.

Wenden Sie eine der folgenden Methoden an, um eine Ratendrosselung zu vermeiden:

Anfragen stapeln

Um API-Aufrufe zu reduzieren, verwenden Sie die AWS CLI oder Ihr bevorzugtes SDK, um einzelne Operationen desselben Typs zu einem Change-Batch-Vorgang zusammenzufassen.

Fordern Sie beispielsweise für mehrere Datensätze mit einem Batchvorgang CREATE, DELETE oder UPSERT (aktualisieren und einfügen) an. Verwenden Sie den Befehl change-resource-record-sets in der AWS CLI, um Massenvorgänge mit Ressourcendatensätzen durchzuführen.

Hinweis:

  • UPSERT-Anfragen zählen doppelt.
  • Es bestehen Kontingente für die Elemente und Zeichen in change-resource-record-sets-API-Aufrufen.

Wiederholungsversuche und exponentielles Backoff verwenden

Um eine Drosselung zu vermeiden, fügen Sie Ihren Route-53-API-Aufrufen Wiederholungsversuche und exponentielles Backoff hinzu. Verwenden Sie beispielsweise einen einfachen exponentiellen Backoff-Algorithmus, der den Aufruf in 2^i Sekunden wiederholt, wobei i die Anzahl der Wiederholungsversuche ist.

Startzeiten zufällig festlegen

Randomisieren Sie die Startzeit für den Aufruf von Route 53-APIs. Stellen Sie sicher, dass die Logik nicht gleichzeitig mehrere Anwendungen verarbeiten. Gleichzeitige Anfragen können zu Drosselungen führen.

„Ruhezeit“ zwischen Aufrufen einführen

Wenn die Codefunktionsaufrufe an die Route 53-APIs aufeinander folgen, fügen Sie zwischen den beiden Aufrufen eine „Ruhezeit“ hinzu, um das Risiko einer Drosselung zu minimieren.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr