

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Limitation des demandes pour l'API Amazon ECS
<a name="request-throttling"></a>

Amazon Elastic Container Service limite toutes les demandes d'API pour chaque AWS compte, région par région. Nous procédons ainsi pour garantir des performances cohérentes et une utilisation équitable du service pour tous les clients Amazon ECS. La régulation garantit que les appels à l'API Amazon ECS ne dépassent pas les quotas de demandes d'API maximum autorisés pour Amazon ECS et les autres AWS services auxquels il s'intègre. Les appels d'API sont soumis aux quotas de demandes, qu'ils proviennent de :
+ Une application tierce
+ Un outil de ligne de commande
+ La console Amazon ECS

Si vous dépassez le quota de limitation de l'API, le code `ThrottlingException` d'erreur s'affiche.

```
An error occurred (ThrottlingException) when calling the DescribeClusters operation (reached max retries: 4): Rate exceeded.
com.amazonaws.services.ecs.model.AmazonECSException: Rate exceeded (Service: AmazonECS; Status Code: 400; Error
Code: ThrottlingException; Request ID: 5ed90669-e454-464d-9b2f-6523bc86f537; Proxy: null)
```

## Comment l'étranglement est-il appliqué
<a name="throttling-how"></a>

Amazon ECS utilise l'[algorithme Token Bucket](https://en.wikipedia.org/wiki/Token_bucket) pour implémenter la régulation des API. Avec cet algorithme, votre compte dispose d'un *compartiment* contenant un nombre spécifique de *jetons*. Le nombre de jetons dans le compartiment représente votre quota de limitation à chaque seconde.

*Amazon ECS examine le taux de soumission de demandes d'API pour toutes les API Amazon ECS de votre compte, par région, et applique deux types de quotas de limitation des API : permanents et *intensifs*.* Le taux soutenu est le nombre moyen de demandes d'API autorisées par seconde au fil du temps pour une opération. Le taux de rafale est le nombre maximum de demandes d'API autorisées par seconde. Avec Burst, vous pouvez régulièrement effectuer un nombre de demandes d'API supérieur au taux soutenu. Amazon ECS limite ensuite les demandes d'API suivantes jusqu'à ce que le taux de demandes d'API autorisées au fil du temps se stabilise à un taux soutenu. Dans l'algorithme du seau à jetons, la *capacité maximale du godet* indique le taux d'éclatement et le taux de *recharge du godet est le taux* soutenu. Nous utiliserons ces termes pour vous fournir une illustration de la limitation des demandes d'API Amazon ECS dans l'exemple suivant.

Le nombre de demandes d'API que vous effectuez est limité et chaque demande supprime un jeton du bucket de jetons. Par exemple, la taille du compartiment pour les *actions de lecture du cluster*, telles que l'`DescribeClusters`API, est de 50 jetons. Vous pouvez donc effectuer jusqu'à 50 `DescribeClusters` demandes en une seconde. Si vous dépassez 50 demandes par seconde, vous êtes limité et les demandes restantes échouent au cours de cette seconde.

Les seaux se rechargent automatiquement à un débit défini. Si le compartiment est inférieur à sa capacité maximale, un nombre défini de jetons y est ajouté chaque seconde jusqu'à ce qu'il atteigne sa capacité maximale. Si le seau est plein à l'arrivée des jetons de recharge, ils sont jetés. Le bucket ne peut pas contenir plus de jetons que son maximum. Par exemple, la taille du compartiment pour les *actions de lecture du cluster*, telles que l'`DescribeClusters`API, est de 50 jetons, et le taux de recharge est de 20 jetons par seconde. Si vous effectuez 50 demandes d'`DescribeClusters`API par seconde, le bucket est immédiatement réduit à zéro jeton. Le seau est ensuite rempli de 20 jetons par seconde, jusqu'à ce qu'il atteigne sa capacité maximale de 50 jetons. Cela signifie que le seau précédemment vide atteint sa capacité maximale au bout de 2,5 secondes.

Il n'est pas nécessaire d'attendre que le compartiment soit complètement plein pour pouvoir effectuer des demandes d'API. Vous pouvez utiliser des jetons au fur et à mesure qu'ils sont ajoutés au bucket. Si vous utilisez immédiatement les jetons de recharge, le seau n'atteint pas sa capacité maximale. Par exemple, la taille du compartiment pour les *actions de lecture du cluster*, telles que l'`DescribeClusters`API, est de 50 jetons, et le taux de recharge est de 20 jetons par seconde. Si vous épuisez le compartiment en effectuant 50 demandes d'API par seconde, vous pouvez continuer à effectuer 20 demandes d'API par seconde. Le compartiment ne peut être rempli à sa capacité maximale que si vous effectuez moins de 20 demandes d'API par seconde.

## Demandez la taille des seaux de jetons et les taux de recharge
<a name="throttling-quotas"></a>

Pour limiter le taux de demandes, les actions de l'API sont regroupées en catégories. Toutes les actions d'API d'une catégorie partagent le même compartiment de jetons. Par exemple, `DescribeClusters` les `ListClusters` API partagent le compartiment d'*actions de lecture du cluster*, dont la capacité est de 50 et le taux de recharge de 20. Cela signifie que le nombre cumulé de demandes d'API pour toutes les *actions de lecture du cluster* est limité par le même quota de 50 demandes d'API. Ainsi, vous pouvez effectuer 25 `DescribeClusters` et 25 demandes d'`ListClusters`API en une seconde, ou 30 `DescribeClusters` et 20`ListClusters`, ou 50 `DescribeClusters` et 0`ListClusters`, ou 0 `DescribeClusters` et 50`ListClusters`, mais vous ne pouvez pas faire 50 `DescribeClusters` et 50 `ListClusters` demandes en même temps. Le taux soutenu est également appliqué de manière cumulative à toutes les demandes d'API d'un bucket.

Le tableau suivant indique la capacité du seau (ou le taux de rupture) et le taux de recharge (ou continu) pour toutes les AWS régions. Toutes les catégories d'actions d'API appliquent des quotas tarifaires pour chaque AWS compte par région.


| Catégorie d'action de l'API | Actions | Capacité maximale du compartiment (ou taux en rafale) | Taux de recharge du compartiment (ou taux soutenu) | 
| --- | --- | --- | --- | 
| Actions de modification du cluster |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 20 | 1 | 
| Actions de lecture groupées |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Définition des tâches, modification des actions |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 20 | 1 | 
| Définition des tâches, lecture des actions |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Actions de suppression de définitions de tâches |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 5 | 1 | 
| Actions de modification du fournisseur de capacité |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 10 | 1 | 
| Actions de lecture du fournisseur de capacité |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Actions de modification des balises |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 20 | 10 | 
| Actions de lecture de balises |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Configuration des actions de modification |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 10 | 1 | 
| Configuration des actions de lecture |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Actions de modification des ressources du cluster |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 100 | 40 | 
| Actions de lecture des ressources du cluster |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 100 | 20 | 
| Actions de modification de l'agent |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 200 | 120 | 
| Actions de modification du service |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 5 | 
| Actions de lecture du service |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 100 | 20 | 
| Actions de déploiement de services |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Actions de révision des services |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 50 | 20 | 
| Actions de protection des tâches |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 200 | 80 | 
| Actions de lecture des ressources du service de cluster |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/request-throttling.html)  | 10 | 1 | 

<a name="note-1"></a>1 AWS Fargate limite également l'`RunTask`API Amazon ECS aux taux indiqués [ici](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/throttling.html) dans le manuel *Amazon ECS Developer Guide*.

## Ajustement des quotas de limitation des API
<a name="throttling-increase"></a>

Vous pouvez demander une augmentation des quotas de limitation des API pour votre AWS compte. Pour demander un ajustement de quota, contactez[AWS Support Center](https://console.aws.amazon.com/support/home#/).

## Gestion de la régulation des API
<a name="handling-throttling"></a>

Vous pouvez mettre en œuvre une nouvelle tentative d'erreur et une stratégie de réduction exponentielle afin d'éviter l'impact des erreurs de limitation sur vos charges de travail. Si vous utilisez le AWS SDK, la logique de nouvelle tentative automatique est déjà intégrée et configurable. Vous pouvez consulter les ressources suivantes pour plus de détails :
+ [Nouvelles tentatives d'erreur et ralentissement exponentiel AWS dans le Guide](https://docs.aws.amazon.com/general/latest/gr/api-retries.html) de référence général AWS 
+ Article de blog sur le [recul exponentiel et la nervosité](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)
+ [Article sur les délais, les nouvelles tentatives et les interruptions en raison de la nervosité dans](https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/) la bibliothèque Amazon Builder