Plans d'utilisation et limites tarifaires

Découvrez les plans d'utilisation et la manière dont les limites de débit sont utilisées dans SP-API.

La fiabilité des API dépend du dimensionnement de votre capacité et de vos ressources pour répondre à l'évolution des besoins de votre application au fil du temps. C'est pourquoi l'API Selling Partner (SP-API) définit des plans d'utilisation pour contrôler le nombre de demandes que vous pouvez adresser à une opération au cours d'une période donnée.

Les plans d'utilisation dépendent de plusieurs facteurs. Ces facteurs peuvent inclure le compte du partenaire vendeur, l'application qui appelle le SP-API pour le compte du partenaire vendeur, la place de marché, etc.

Ce document décrit l'algorithme de limitation de débit du SP-API, les facteurs qui déterminent les plans d'utilisation, comment trouver votre plan d'utilisation et les questions fréquemment posées sur le respect de vos limites tarifaires.

Pour obtenir des conseils sur la manière d'optimiser les charges de travail de vos applications afin de tirer parti efficacement des limites de débit pour chaque opération SP-API, reportez-vous à Optimisez les limites de débit pour les charges de travail des applications.

Terminologie

Les termes suivants concernent la limitation de débit dans le SP-API :

  • Limite de débit : Le nombre maximum de requêtes que l'API SP-API vous permet d'effectuer pour une opération particulière par seconde. Pour éviter l'étranglement, restez en dessous de cette limite.
  • Limite de rafale : Le nombre maximum de demandes relatives à une opération particulière que vous pouvez créer au fil du temps, puis soumettre simultanément.
  • Plan d'utilisation : Combinaison de la limite de débit et de la limite de rafale qui s'applique à une opération spécifique. Pour plus d'informations, reportez-vous à Types de plans d'utilisation et Facteurs qui déterminent les plans d'utilisation.
  • Algorithme de bucket de jetons : Algorithme utilisé par la SP-API pour limiter le débit des requêtes, basé sur une analogie avec l'échange de jetons pour les demandes d'API. Pour une présentation détaillée de l'algorithme, reportez-vous à Algorithme de limitation de débit.
  • Régulation : Le cas dans lequel le SP-API rejette temporairement vos demandes lorsque vous dépassez votre limite de débit. Une requête limitée entraîne une réponse d'erreur HTTP 429. Vous pouvez réessayer les requêtes limitées ultérieurement.
  • Compte : Le compte du partenaire commercial pour le compte duquel l'application de développement appelle l'API SP. Vous spécifiez le compte en fournissant un sellerId lorsque vous appelez certaines opérations SP-API.
  • Candidature : L'application de développement qui appelle l'API SP pour le compte d'un partenaire commercial. Dans la console du développeur du partenaire commercial, vous trouverez l'ID de l'application après le nom de l'application.
  • Opérations non subventionnées : Opérations ne nécessitant pas de sellerId dans le cadre de la demande. Pour les opérations sans subvention, le partenaire de vente n'entre pas en ligne de compte dans le plan d'utilisation de cette opération. Pour une liste des opérations sans subvention, reportez-vous à Opérations sans subvention.

Algorithme de limitation de débit

La SP-API utilise l'algorithme de bucket de jetons pour limiter le débit des requêtes adressées à l'API. L'algorithme est basé sur l'analogie d'un compartiment contenant des jetons, dans lequel vous pouvez échanger chaque jeton contre une demande à l'API.

Dans cette analogie, le SP-API ajoute automatiquement des jetons à votre bucket à un rythme défini par seconde jusqu'à ce que la taille maximale du bucket soit atteinte. La taille maximale est également appelée fréquence de rafale.

Lorsque vous appelez la SP-API, celle-ci récupère votre plan d'utilisation (limite de débit et limite de rafale) pour cette opération en fonction du jeton d'accès qui identifie l'identité de l'appelant dans l'en-tête de la demande. Chaque demande que vous envoyez à l'API SP soustrait un jeton du compartiment. La limitation se produit lorsque vous faites une demande pour laquelle aucun jeton n'est disponible car votre compartiment est vide. Une requête limitée entraîne une réponse d'erreur.

L'illustration suivante montre comment fonctionne la limitation du débit en fonction de l'algorithme du compartiment de jetons et des critères d'allocation du compartiment. L'exemple utilise une opération dont la limite de débit est de un et une limite de rafale de deux.

The token bucket algorithm.

  1. Le compartiment est initialement plein et contient deux jetons (limite de rafale). À 01:00:100, une application appelle une opération du SP-API pour le compte d'un partenaire commercial opérant sur le marché de l'UE. La demande a été acceptée. Le compartiment contient désormais un seul jeton car la demande a épuisé un jeton du compartiment.
  2. Après 100 millisecondes, à 01:00:200, la même application appelle la même opération pour le compte du même partenaire commercial dans la même région. La demande est réussie et utilise le dernier jeton du compartiment. Le seau est maintenant vide.
  3. Après 100 millisecondes supplémentaires, à 01:00:300, la même application appelle la même opération pour le compte du même partenaire commercial dans la même région. Cette fois, en raison de l'épuisement des limites (compartiment vide), la demande est limitée.
  4. Une seconde après le début de cet exemple, à 01:01:000, le SP-API place un jeton dans le bucket, car la limite de débit est d'un jeton par seconde. L'application peut désormais lancer l'opération avec succès sans être limitée.
  5. Au bout d'une seconde, à 01:02:00, le SP-API ajoute un autre jeton au bucket.
  6. À 01:03:00, l'API SP-API n'ajoute aucun autre jeton au bucket car celui-ci a atteint sa taille maximale (limite de rafale).

Les facteurs qui déterminent les limites de débit et de rafale signifient que, dans certains cas, il existe un compartiment de jetons distinct. Dans cet exemple, deux jetons sont disponibles à 01:00:200 dans les cas suivants :

  • La même application déclenche la même opération mais pour le compte d'un partenaire commercial différent.
  • La même application appelle la même opération pour le compte du même partenaire commercial, mais en utilisant les informations d'identification d'un compte régional différent.
  • Une application différente déclenche la même opération pour le compte du même partenaire commercial.

L'illustration suivante montre ces scénarios alternatifs.

Alternate scenarios.

Facteurs qui déterminent les plans d'utilisation

Les limites de débit et de rafale pour chaque opération SP-API dépendent de plusieurs facteurs, et plusieurs plans d'utilisation peuvent s'appliquer à une opération individuelle. Les demandes sont limitées au seuil que vous atteignez en premier.

Le SP-API s'appuie sur les facteurs suivants pour attribuer les plans d'utilisation :

  • Fonctionnement de l'API : Chaque opération de la SP-API possède son propre taux par défaut et ses propres limites de rafale. Vous trouverez ces limites, ou un lien vers la documentation répertoriant les limites, dans la documentation de référence de l'API pour chaque opération.
  • Partenaire de vente (compte) et paire d'applications : Les limites tarifaires de la plupart des opérations sont définies par partenaire de vente et par paire d'applications. L'application appelle le SP-API au nom du partenaire de vente. Les opérations sans subvention constituent des exceptions à cette règle. Les applications peuvent faire appel à des opérations sans subvention sans l'autorisation d'un partenaire commercial. Pour les opérations sans subvention, les plans d'utilisation sont définis en fonction des autres critères de cette section.
  • Régions et places de marché : Les plans d'utilisation sont implicitement liés aux groupes de places de marché dans lesquels un partenaire commercial opère et a autorisé une application à appeler le SP-API en son nom. La nature implicite de ce facteur limitant les tarifs est due aux différents comptes des partenaires commerciaux spécifiques à la place de marché. Les comptes de partenaires commerciaux spécifiques à la place de marché ont des identifiants de vendeur différents.

Types de plans d'utilisation

Chaque opération SP-API est associée à un plan d'utilisation. Un plan d'utilisation spécifie une limite de débit et une limite de rafale. Pour plus de détails sur la façon de trouver votre forfait d'utilisation, consultez Comment trouver votre plan d'utilisation. Il existe deux types de plans d'utilisation : standard et dynamique.

  • Plans d'utilisation standard : La plupart des API SP sont régies par des plans d'utilisation standard. Avec un plan d'utilisation standard, les limites de débit ont des valeurs statiques pour tous les appelants en fonction des modèles d'appels attendus pour chaque opération. Vous pouvez trouver le plan d'utilisation, ou un lien vers la documentation répertoriant le plan d'utilisation, dans la documentation de référence de l'API pour chaque opération.

  • Plans d'utilisation dynamiques : Certaines API et opérations SP disposent de plans d'utilisation dynamiques. Un plan d'utilisation dynamique est un plan qui est automatiquement adapté à chaque partenaire commercial en fonction des besoins commerciaux actuels et historiques de cette entreprise. Étant donné que l'objectif des plans d'utilisation dynamiques est d'ajuster ces limites au fil du temps, les tarifs peuvent changer. Divers indicateurs commerciaux des partenaires commerciaux influencent les ajustements des taux. Ces mesures sont uniquement des mesures commerciales et n'incluent pas le nombre historique de demandes d'API. Les taux n'augmentent pas de manière dynamique car une application fait des demandes d'API plus fréquemment.

    Les plans d'utilisation dynamiques s'appliquent uniquement aux API et opérations SP suivantes.

Comment trouver votre plan d'utilisation

Vous pouvez trouver votre plan d'utilisation (limites de débit et de rafale) de la manière suivante :

  • Documentation de l'API SP : Vous trouverez ces limites, ou un lien vers la documentation répertoriant les limites, dans la documentation de référence de l'API pour chaque opération.

  • En-tête de réponse : Lorsque vous appelez une opération SP-API, x-amzn-RateLimit-Limit l'en-tête de réponse, s'il est disponible, spécifie les limites de débit de l'opération par paire compte-application. Cependant, vous ne devez pas dépendre de la présence de cet en-tête, pour les raisons suivantes :

    • Dans certains cas, malgré tous les efforts déployés, l'API SP ne parvient pas à récupérer les limites de débit. Dans ce cas, le SP-API n'échoue pas à un appel par ailleurs valide à l'opération. Au lieu de cela, l'API SP-API renvoie la réponse sans x-amzn-RateLimit-Limit en-tête.
    • Le x-amzn-RateLimit-Limit L'en-tête de réponse concerne les codes d'état HTTP 20x, 400 et 404. Les demandes non autorisées ou non authentifiées n'incluent pas cet en-tête.
    • Le x-amzn-RateLimit-Limit l'en-tête n'inclut pas les limites tarifaires des autres forfaits d'utilisation.

    Cela signifie que vous ne devez pas dépendre de la présence de l'en-tête x-amzn-RateLimit-Limit dans une réponse. Vérifiez plutôt la présence de l'en-tête avant d'essayer d'utiliser la valeur limite de débit.

Foire aux questions

Les limites de débit pour une opération sont trop faibles pour mon cas d'utilisation. Peuvent-elles être augmentées ?

Nous visons à fixer des limites appropriées, dans le but que les modèles d'appels efficaces ne soient, idéalement, jamais limités. Si votre application est constamment limitée, cela peut signifier que vous pouvez optimiser davantage vos modèles d'appels. Pour plus d'informations, reportez-vous à Que dois-je faire si mon application est constamment ralentie ?. Si vous trouvez que les taux de défaut ne sont pas suffisants, reportez-vous à Stratégies visant à optimiser les limites de débit pour les charges de travail de vos applications.

Comment mon application doit-elle gérer une réponse 429 ?

Un 429 est un code d'état réutilisable. Vous pouvez réessayer, mais les requêtes limitées répétées nécessitent une stratégie de sauvegarde. Utilisez le x-amzn-RateLimit-Limit en-tête de réponse, lorsqu'il est disponible, pour déterminer si les limites de débit diffèrent de vos attentes. Pour plus de détails sur la date à laquelle cet en-tête est disponible, reportez-vous à Comment trouver votre plan d'utilisation.

Comment puis-je tester mon application par rapport à ses plans d'utilisation ?

Vous pouvez tester la gestion des erreurs 429 à l'aide du sandbox de l'API Selling Partner. Cependant, vous ne pouvez pas tester les limites de débit avec le bac à sable, car si les opérations en production peuvent avoir des taux différents, toutes les opérations du bac à sable partagent le même taux. Vous pouvez trouver les taux d'utilisation qui vous sont attribués dans x-amzn-RateLimit-Limit en-tête de réponse pour chaque opération, s'il est disponible. Pour plus de détails sur la date à laquelle cet en-tête est disponible, reportez-vous à Comment trouver votre plan d'utilisation.

Est-ce que mon application peut complètement éviter les limitations ?

Non. Un certain nombre de facteurs indépendants de votre volonté peuvent entraîner quelques 429 transitoires. Le code de votre application doit tenir compte de cette possibilité.

Que dois-je faire si mon application est constamment limitée ?

Si votre application est constamment limitée, vous devrez peut-être optimiser davantage vos modèles d'appels. Par exemple :

  • Appelez moins fréquemment et respectez vos limites tarifaires.

  • Utilisez les notifications push plutôt que les mécanismes de sondage.

  • Utilisez les API de traitement par lots lorsqu'elles sont disponibles ou essayez d'en faire plus avec moins d'appels. Par exemple, avec Aliments et Rapports API, vous pouvez envoyer ou récupérer plus d'informations par appel. En règle générale, examinez vos modèles d'appels par rapport aux opérations d'une API afin de déterminer si vous pouvez effectuer le même travail en moins d'appels.

Mon application sera-t-elle limitée plus souvent à mesure que j'obtiens de nouvelles autorisations ?

Non. Les plans d'utilisation sont spécifiques à l'application et au partenaire de vente, de sorte que votre débit augmente naturellement avec vos clients.

Les limites de débit vont-elles changer ?

Nous pouvons augmenter les limites de débit à tout moment. Si jamais nous abaissons les limites de débit publiées dans la documentation de référence de l'API, nous communiquerons cette modification à l'avance pour vous donner le temps de mettre à jour et de tester vos applications avant que la modification ne soit mise en œuvre.

Les limites tarifaires pour les plans d'utilisation dynamiques s'ajustent automatiquement à la hausse ou à la baisse en fonction du contexte commercial.

Mes limites de débit augmenteront-elles si mon application est constamment limitée ?

Les tarifs sont basés sur les indicateurs commerciaux du partenaire de vente. Si votre application est constamment limitée, vos habitudes d'appels ne sont probablement pas conformes aux limites tarifaires attribuées à ce partenaire commercial. Reportez-vous à Que dois-je faire si mon application est constamment limitée ? et Les limites de débit pour une opération sont trop faibles pour mon cas d'utilisation. La limite peut-elle être augmentée ?.

Quel est l'objectif global des plans d'utilisation dynamiques ?

Historiquement, nous avons observé que les plans d'utilisation homogènes sont surdimensionnés dans certaines situations et, pire encore, sous-dimensionnés dans d'autres. L'objectif des plans d'utilisation dynamiques est de s'appuyer sur le contexte commercial connu d'un appel donné afin de mettre en place les limites appropriées à chaque situation.

Quels facteurs influencent les plans d'utilisation dynamiques ?

En général, les limites de débit sont déterminées par le type, la taille et le comportement de l'entreprise partenaire de vente.

À quelle fréquence les limites associées à un plan d'utilisation donné seront-elles modifiées ?

Notre objectif est d'éviter les modifications fréquentes et perturbatrices des limites. En règle générale, les limites sont modifiées dès que nous détectons des changements significatifs dans les indicateurs commerciaux du compte d'un partenaire de vente.

Comment dois-je coder mon application pour respecter les limites dynamiques ?

Les suggestions suivantes peuvent aider votre application à gérer les limites de débit dynamiques :

  • Lisez le x-amzn-RateLimit-Limit en-tête, lorsqu'il est disponible. Pour plus de détails sur la date à laquelle cet en-tête est disponible, reportez-vous à Comment trouver votre plan d'utilisation.

  • Ne codez pas des minuteries en dur.

  • Codez naturellement en fonction des événements plutôt que de l'exécuter en boucle. Si vous utilisez des événements, vous n'avez pas besoin de chronomètre. Par exemple, mettez à jour les prix en réponse aux notifications de prix plutôt que toutes les secondes.


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