Optimisez les limites de débit pour les charges de travail des applications

Gérez la limitation des API et optimisez l'utilisation des SP-API au sein de votre application.

Lorsque vous concevez votre application API Selling Partner (SP-API), vous devez tenir compte des limites de débit de ressources par API. L'API Selling Partner maintient un quota de ressources par API pour chaque partenaire commercial afin de maintenir la disponibilité et d'éviter de surcharger les API individuelles.

Si vous dépassez ces limites de débit, SP-API renvoie un 429 Too Many Requests erreur et limite l'appel. Une limitation excessive des API peut entraîner des échecs, des retards et des inefficacités opérationnelles qui, au final, coûtent du temps et de l'argent à votre organisation. Si vous recevez ces réponses d'erreur, vous pouvez renvoyer les demandes qui ont échoué en respectant les limites de débit.

Ce guide décrit les stratégies suivantes pour vous aider à gérer efficacement la limitation des API et à optimiser les performances et la fiabilité de vos applications SP-API :

Pour obtenir des conseils complets sur les meilleures pratiques concernant les différents aspects de l'intégration SP-API, consultez le Liste de lecture SP-API Wellected Guidance sur la chaîne Amazon SP-API Developer University.

Vérifiez et respectez les limites tarifaires

Consultez les instructions suivantes pour savoir comment vérifier et respecter les limites tarifaires.

Vérifiez les limites de taux

Consultez le plan d'utilisation pour chaque opération SP-API dans la documentation. Pour savoir comment trouver le plan d'utilisation, reportez-vous à Comment trouver votre plan d'utilisation.

Comparez les limites documentées avec les en-têtes de limite de débit des réponses de l'API. L'en-tête de réponse est disponible pour les codes d'état HTTP 20x, 400 et 404. Pour éviter les ralentissements, concevez votre application de manière à respecter ces limites.

Pour en savoir plus sur les plans d'utilisation et le fonctionnement de l'algorithme de limitation de débit SP-API, consultez Plans d'utilisation et limites tarifaires.

Mettre en place un système de surveillance et d'alerte des erreurs

Pour respecter les limites de débit des API, il est essentiel de mettre en place un système efficace de surveillance et d'alerte en cas d'erreur. Ce processus implique généralement les étapes suivantes :

  1. Consigner les réponses de l'API: Capturez et stockez l'intégralité des données de réponse de l'API, y compris les codes d'état, les en-têtes et les messages d'erreur, afin de permettre l'analyse et la catégorisation des erreurs.
  2. Catégoriser les erreurs: organisez les erreurs enregistrées dans des compartiments pertinents en fonction des codes d'état HTTP. Par exemple, vous pouvez classer les erreurs client de niveau 400 dans les catégories suivantes : 400 entrées non valides, 403 problèmes d'authentification, 404 ressources introuvables, 429 violations des limites de débit, etc.
  3. Création d'un tableau de bord des erreurs: visualisez les taux d'erreur pour chaque opération d'API et chaque type d'erreur sur un tableau de bord centralisé afin d'identifier rapidement les zones problématiques.
  4. Définissez des seuils d'alerte: définissez des seuils appropriés pour chaque type d'erreur et configurez des alertes pour vous avertir de manière proactive lorsque les taux d'erreur dépassent ces seuils.

Si vous utilisez les services AWS, vous pouvez mettre en œuvre cette bonne pratique en utilisant Amazon CloudWatch:

  • journaux CloudWatch: Capturez et stockez les données de réponse détaillées de l'API.
  • Filtres de métriques CloudWatch: créez des mesures personnalisées pour compter les différents types d'erreurs en fonction des codes d'état.
  • Alarmes CloudWatch: Surveillez les indicateurs d'erreur et déclenchez des notifications (par exemple, Service de notification Amazon Simple) lorsque les seuils sont dépassés.

Évitez les embouteillages

Répartissez les demandes d'API de manière uniforme dans le temps afin d'éviter des rafales d'appels concentrées vers des opérations spécifiques suivies de périodes d'activité minimale. Ces pics irréguliers entraînent 429 erreurs supplémentaires, que vous pouvez éviter en étalant le trafic dans le temps.

Vous pouvez implémenter un limiteur de débit pour gérer un volume de trafic élevé et autoriser N requêtes par seconde en fonction des limites de ressources par API. Le limiteur de débit garantit un modèle d'appel cohérent dans le temps, afin d'atténuer les pics de trafic et de promouvoir une utilisation uniforme de l'API. Utilisez la limite de débit par API comme ligne directrice pour chaque API du limiteur de débit.

Pour un exemple de code étape par étape qui utilise le Bibliothèque d'authentification/autorisation de l'API des partenaires de vente pour implémenter un limiteur de débit, reportez-vous à l'exemple de code suivant.

Mettre en œuvre des techniques de nouvelle tentative et de sauvegarde

Mettez en œuvre de manière proactive les techniques suivantes pour éviter tout impact sur vos charges de travail et améliorer la fiabilité de votre application :

  • Réessayez: implémentez une logique de nouvelle tentative automatique. Vous pouvez configurer les paramètres de nouvelle tentative en ajoutant un léger délai et en mettant en file d'attente entre vos demandes.
  • Atténuation exponentielle: utilisez un algorithme d'arrêt exponentiel pour un meilleur contrôle du flux, en allongeant progressivement les temps d'attente entre les nouvelles tentatives pour les réponses d'erreur consécutives. L'amortissement exponentiel peut entraîner des temps d'arrêt très longs, car les fonctions exponentielles se développent rapidement. Implémentez un intervalle de retard maximal et un nombre maximum de tentatives, que vous pouvez ajuster en fonction de l'opération et d'autres facteurs locaux.
  • nervosité: Les nouvelles tentatives peuvent être inefficaces si tous les clients réessayent en même temps. Pour éviter ce problème, utilisez le jitter, qui correspond à un laps de temps aléatoire avant d'effectuer ou de réessayer une demande, afin d'éviter des rafales importantes en étalant le taux d'arrivée. La plupart des algorithmes d'atténuation exponentielle utilisent la gigue pour empêcher les collisions successives. Pour plus d'informations, reportez-vous à Retard exponentiel et gigue.

Réduire le nombre de demandes d'API

Les sections suivantes décrivent comment utiliser les charges de travail basées sur les événements, les opérations par lots et les opérations en bloc pour réduire le nombre de demandes d'API.

Charge de travail basée sur les événements

Surveillez les notifications à l'aide du API des partenaires de vente pour les notifications et effectuez des actions en fonction de conditions spécifiques. Grâce à l'API Selling Partner pour les notifications, vous pouvez créer une destination pour recevoir des notifications, vous abonner à des notifications, supprimer des abonnements aux notifications, etc. Au lieu de demander des informations, votre application peut recevoir des informations directement d'Amazon lorsqu'un événement appelle une notification à laquelle vous êtes abonné.

Il existe de nombreux types de notifications disponible pour que votre application puisse en tirer parti. Pour plus d'informations, consultez le Guide des cas d'utilisation de l'API Notifications v1.

Opérations par lots

Obtenez les données d'un lot d'articles en une seule demande. L'API SP prend en charge un ensemble d'opérations par lots qui effectuent la même action que les appels un par un, mais pour un lot de demandes à la fois. Vous pouvez envoyer le nombre de demandes applicable (généralement 20) en un seul appel d'API au lieu de passer les appels un par un.

L'API SP prend actuellement en charge les opérations par lots pour les cas d'utilisation suivants :

  • Recherche de produits à l'aide de l'API Catalog
  • Obtenir des informations sur les offres ou les prix
  • Obtenir une estimation des frais pour les produits

Opérations en vrac

Vous pouvez charger et télécharger des données en masse en une seule demande d'API.

Pour télécharger des données en masse, vous pouvez utiliser API des flux. Il existe des flux pour une grande variété de cas d'utilisation, tels que la création d'annonces, la gestion des stocks et des prix, la confirmation des commandes, etc. Pour obtenir la liste des types d'aliments disponibles, reportez-vous à Valeurs du type d'alimentation.

Pour télécharger des données en masse, vous pouvez utiliser le API de rapports ou le API Data Kiosk. L'API Reports fournit des rapports pour divers cas d'utilisation, notamment la surveillance des stocks, le suivi des commandes à traiter, l'obtention d'informations fiscales, le suivi des retours et des performances des vendeurs, la gestion d'une activité de vente avec Fulfillment by Amazon, etc. Pour plus de détails sur les opérations de l'API Reports et les types de données et schémas associés, consultez le Référence de l'API Reports. Pour les types de rapports disponibles, reportez-vous à Valeurs du type de rapport.

L'API Data Kiosk prend en charge les opérations de requête GraphQL pour des fonctionnalités de rapports dynamiques. GraphQL est un langage de requête pour les API qui vous permet de demander et de recevoir les données dont vous avez besoin en une seule requête. La suite de rapports dynamiques basée sur GraphQL de Data Kiosk vous aide à générer des requêtes GraphQL personnalisées pour accéder à des données en masse à partir de jeux de données Amazon. Pour plus de détails, reportez-vous à Guide de l'utilisateur de Data Kiosk Schema Explorer.

Autres bonnes pratiques

Gardez à l'esprit les autres bonnes pratiques suivantes :

  • Surveillez votre utilisation et adaptez-la en conséquence à mesure que votre application se développe.
  • Optimisez votre code pour éliminer les appels d'API inutiles.
  • Mettez en cache les données fréquemment utilisées afin de réduire le besoin de requêtes d'API répétées. Vous pouvez mettre en cache les données sur vos serveurs à l'aide d'un stockage au niveau objet tel que Amazon S3. Vous pouvez également enregistrer des informations relativement statiques dans une base de données ou les sérialiser dans un fichier.
  • Répertoriez les requêtes SP-API dans une file d'attente et effectuez d'autres tâches de traitement en attendant l'exécution de la prochaine tâche en file d'attente.

Cette page vous a-t-elle été utile ?