Optimieren Sie die Ratenlimits für Anwendungsworkloads
Verwalten Sie die API-Drosselung und optimieren Sie die SP-API-Nutzung in Ihrer Anwendung.
Wenn Sie Ihre Verkaufspartner-API-Anwendung (SP-API) entwerfen, müssen Sie die Ressourcenratenbeschränkungen pro API berücksichtigen. Die Vertriebspartner-API hält für jeden Verkaufspartner ein Ressourcenkontingent pro API fest, um die Verfügbarkeit aufrechtzuerhalten und eine Überlastung einzelner APIs zu verhindern.
Wenn Sie diese Ratenlimits überschreiten, gibt SP-API eine 429 Too Many Requests
Fehler und drosselt den Anruf. Eine übermäßige API-Drosselung kann zu Auftragsausfällen, Verzögerungen und betrieblichen Ineffizienzen führen, die Ihr Unternehmen letztendlich Zeit und Geld kosten. Wenn Sie diese Fehlerantworten erhalten, können Sie die fehlgeschlagenen Anfragen erneut einreichen, und zwar so, dass die Ratenlimits eingehalten werden.
In diesem Handbuch werden die folgenden Strategien beschrieben, mit denen Sie die API-Drosselung effektiv verwalten und die Leistung und Zuverlässigkeit Ihrer SP-API-Anwendungen optimieren können:
- Überprüfen und halten Sie sich an die Ratenlimits
- Vermeiden Sie stacheligen Verkehr
- Implementieren Sie Wiederholungs- und Back-Off-Techniken
- Reduzieren Sie die Anzahl der API-Anfragen
For comprehensive guidance on best practices across various aspects of SP-API integration, refer to the SP-API Well-Architected Guidance playlist on the Amazon SP-API Developer University channel.
Überprüfen und halten Sie sich an die Ratenlimits
Lesen Sie die folgenden Hinweise zur Überprüfung und Einhaltung der Ratenlimits.
Überprüfen Sie die Ratenlimits
Review the usage plan for each SP-API operation in the documentation. To learn how to find the usage plan, refer to How to find your usage plan.
Vergleichen Sie die dokumentierten Grenzwerte mit den Ratenlimit-Headern der API-Antworten. Der Response-Header ist für die HTTP-Statuscodes 20x, 400 und 404 verfügbar. Um Drosselungen zu vermeiden, sollten Sie Ihre Anwendung so gestalten, dass sie innerhalb dieser Grenzwerte bleibt.
To learn more about usage plans and how the SP-API rate limiting algorithm works, refer to Usage Plans and Rate Limits.
Richten Sie ein Fehlerüberwachungs- und Warnsystem ein
Um die API-Ratenlimits einzuhalten, ist es wichtig, ein effektives System einzurichten, das überwacht und warnt, wenn Fehler auftreten. Dieser Prozess umfasst in der Regel die folgenden Schritte:
- API-Antworten protokollieren: Erfassen und speichern Sie die vollständigen API-Antwortdaten, einschließlich Statuscodes, Headern und Fehlermeldungen, um die Analyse und Kategorisierung von Fehlern zu ermöglichen.
- Fehler kategorisieren: Organisieren Sie die protokollierten Fehler anhand von HTTP-Statuscodes in relevante Buckets. Beispielsweise können Sie Client-Fehler der Stufe 400 in die folgenden Kategorien einteilen: 400 ungültige Eingaben, 403 Authentifizierungsprobleme, 404-Ressource wurde nicht gefunden, 429 Verstöße gegen das Ratenlimit usw.
- Erstellen Sie ein Fehler-Dashboard: Visualisieren Sie die Fehlerraten für jeden API-Vorgang und jeden Fehlertyp auf einem zentralen Dashboard, um problematische Bereiche schnell zu identifizieren.
- Stellen Sie Schwellenwerte für Warnmeldungen ein: Definieren Sie geeignete Schwellenwerte für jeden Fehlertyp und richten Sie Warnmeldungen ein, um Sie proaktiv zu benachrichtigen, wenn die Fehlerraten diese Schwellenwerte überschreiten.
If you use AWS services, you can implement this best practice by using Amazon CloudWatch:
- CloudWatch-Protokolle: Erfassen und speichern Sie die detaillierten API-Antwortdaten.
- Filter für CloudWatch-Metriken: Erstellen Sie benutzerdefinierte Metriken, um die verschiedenen Fehlertypen anhand von Statuscodes zu zählen.
- CloudWatch alarms: Monitor the error metrics and trigger notifications (for example, Amazon Simple Notification Service) when thresholds are breached.
Vermeiden Sie stacheligen Verkehr
Verteilen Sie API-Anfragen gleichmäßig über die Zeit, um konzentrierte Aufrufe bestimmter Operationen zu vermeiden, auf die Perioden mit minimaler Aktivität folgen. Diese ungleichmäßigen Spitzen verursachen weitere 429 Fehler, die Sie vermeiden können, indem Sie den Datenverkehr über einen längeren Zeitraum verteilen.
Sie können einen Ratenbegrenzer implementieren, um ein hohes Datenverkehrsvolumen zu verwalten, und N Anfragen pro Sekunde zulassen, basierend auf Ressourcenbeschränkungen pro API. Der Ratenbegrenzer sorgt für ein konsistentes Aufrufmuster im Laufe der Zeit, um Verkehrsspitzen abzuschwächen und eine einheitliche API-Nutzung zu fördern. Verwenden Sie das Ratenlimit pro API als Richtlinie für jede API im Ratenbegrenzer.
For a step-by-step code example that uses the Selling Partner API Authentication/Authorization Library to implement a rate limiter, refer to the following sample code.
Implementieren Sie Wiederholungs- und Back-Off-Techniken
Implementieren Sie proaktiv die folgenden Techniken, um Auswirkungen auf Ihre Workloads zu vermeiden und die Zuverlässigkeit Ihrer Anwendung zu erhöhen:
- Erneut versuchen: Implementieren Sie die automatische Wiederholungslogik. Sie können die Wiederholungseinstellungen konfigurieren, indem Sie eine kleine Verzögerung und eine Warteschlange zwischen Ihren Anfragen hinzufügen.
- Exponentieller Rückschlag: Verwenden Sie einen exponentiellen Back-Off-Algorithmus für eine bessere Flusskontrolle mit zunehmend längeren Wartezeiten zwischen Wiederholungsversuchen für aufeinanderfolgende Fehlerantworten. Exponentielles Back-off kann zu sehr langen Backoff-Zeiten führen, da Exponentialfunktionen schnell wachsen. Implementieren Sie ein maximales Verzögerungsintervall und eine maximale Anzahl von Wiederholungsversuchen, die Sie je nach Vorgang und anderen lokalen Faktoren anpassen können.
- Jitter: Retries can be ineffective if all clients retry at the same time. To avoid this problem, use jitter, which is a random amount of time before making or retrying a request to help prevent large bursts by spreading out the arrival rate. Most exponential back-off algorithms use jitter to prevent successive collisions. For more information, refer to Exponential Backoff and Jitter.
Reduzieren Sie die Anzahl der API-Anfragen
In den folgenden Abschnitten wird beschrieben, wie Sie ereignisbasierte Workloads, Batchoperationen und Massenvorgänge verwenden können, um die Anzahl der API-Anfragen zu reduzieren.
Ereignisbasierter Arbeitsablauf
Monitor notifications by using the Selling Partner API for Notifications and perform actions based on specific conditions. With the Selling Partner API for Notifications, you can create a destination to receive notifications, subscribe to notifications, delete notification subscriptions, and so on. Instead of polling for information, your application can receive information directly from Amazon when an event invokes a notification to which you subscribe.
There are many notification types available for your application to leverage. For more information, refer to the Notifications API v1 Use Case Guide.
Batch-Vorgänge
Ruft Daten für einen Stapel von Artikeln in einer einzigen Anfrage ab. Die SP-API unterstützt eine Reihe von Batch-Operationen, die dieselbe Aktion wie einzelne Aufrufe ausführen, jedoch für einen Stapel von Anfragen gleichzeitig. Sie können die entsprechende Anzahl von Anfragen (meistens 20) in einem einzigen API-Aufruf senden, anstatt die Aufrufe einzeln durchzuführen.
Die SP-API unterstützt derzeit Batch-Operationen für die folgenden Anwendungsfälle:
- Suche nach Produkten mit der Catalog API
- Angebots- oder Preisinformationen abrufen
- Gebührenschätzung für Produkte einholen
Massenoperationen
Sie können Massendaten in einer einzigen API-Anfrage hoch- und herunterladen.
To upload data in bulk, you can use the Feeds API. There are feeds for a wide variety of use cases, such as creating listings, managing inventory and prices, acknowledging orders, and so on. For a list of available feed types, refer to Feed Type Values.
To download data in bulk, you can use the Reports API or the Data Kiosk API. The Reports API provides reports for a variety of use cases, including monitoring inventory, tracking orders for fulfillment, getting tax information, tracking returns and seller performance, managing a selling business with Fulfillment by Amazon, and so on. For details about Reports API operations and associated data types and schemas, refer to the Reports API reference. For available report types, refer to Report Type Values.
The Data Kiosk API supports GraphQL query operations for dynamic report capabilities. GraphQL is a query language for APIs that enables you to request and receive the data that you need in a single request. Data Kiosk's GraphQL-based dynamic reporting suite helps you generate custom GraphQL queries to access bulk data from Amazon datasets. For details, refer to Data Kiosk Schema Explorer User Guide.
Andere bewährte Verfahren
Beachten Sie die folgenden anderen Best Practices:
- Überwachen Sie Ihre Nutzung und skalieren Sie entsprechend, wenn Ihre Anwendung wächst.
- Optimieren Sie Ihren Code, um unnötige API-Aufrufe zu vermeiden.
- Cache frequently used data to reduce the need for repeated API requests. You can cache data on your servers using Object-level storage like Amazon S3. You can also save relatively static information in a database or serialize it in a file.
- Staffeln Sie SP-API-Anfragen in einer Warteschlange und erledigen Sie andere Verarbeitungsaufgaben, während Sie auf die Ausführung des nächsten Jobs in der Warteschlange warten.
Updated 23 days ago