Comment puis-je éviter les erreurs de limitation d'API Route 53 ?

Lecture de 3 minute(s)
0

Je reçois des erreurs de limitation d'API dans Amazon Route 53.

Brève description

Lorsque vous envoyez des appels d'API groupés à Route 53, vous pouvez recevoir une erreur de type HTTP 400 (Bad Request).

Un en-tête de réponse où l’élément Code contient la valeur Limitation et l’élément Message contient la valeur Taux dépassé indique une limitation du débit. La limitation du débit se produit lorsque le nombre de demandes d'API est supérieur à la limite stricte de cinq demandes par seconde et par compte.

Si Route 53 ne parvient pas à traiter une demande avant la demande suivante pour la même zone hébergée, les demandes suivantes sont rejetées avec une autre erreur HTTP 400. L’en-tête de réponse contient les deux éléments suivants :

  • Un élément Code avec la valeur PriorRequestNotComplete
  • Un élément Message avec la valeur la demande a été rejetée car une demande était déjà en cours de traitement par Route 53.

Les appels d'API provenant d'utilisateurs AWS Identity and Access Management (IAM) associés au même compte sont comptabilisés dans le cadre de la limitation globale du débit du compte. Les appels d'API provenant de ces utilisateurs IAM ont également un impact sur les appels d'API effectués depuis la console de gestion AWS.

Résolution

Remarque : si vous recevez des erreurs lors de l'exécution des commandes de l'interface de la ligne de commande AWS (AWS CLI), vérifiez que vous utilisez la version la plus récente de l’interface AWS CLI.

Pour éviter la limitation du débit, utilisez l'une des méthodes suivantes :

Traitement des demandes par lots

Pour réduire les appels d'API, utilisez l’interface AWS CLI ou le SDK de votre choix pour regrouper les opérations individuelles de même type dans une seule opération de modifications par lot.

Par exemple, vous pouvez demander à créer (CREATE), supprimer (DELETE) ou mettre à jour et insérer (UPSERT) plusieurs enregistrements avec une seule opération de traitement par lot. Utilisez la commande change-resource-record-sets dans l'interface AWS CLI pour effectuer des opérations d'enregistrement de ressources en bloc.

Remarque :

  • les demandes UPSERT (mise à jour et insertion) sont comptabilisées deux fois.
  • Des quotas sont appliqués aux éléments et aux caractères au sein des appels d'API change-resource-record-sets.

Utilisation des nouvelles tentatives après erreur et du backoff exponentiel

Pour éviter une limitation, ajoutez les nouvelles tentatives après erreur et le backoff exponentiel à vos appels d'API Route 53. Par exemple, utilisez un algorithme de backoff exponentiel simple qui tente à nouveau l'appel en 2^i secondes, où i représente le nombre de nouvelles tentatives.

Randomisation des heures de début

Randomisez l'heure de début des appels d'API Route 53. Vérifiez que la logique n'est pas traitée par plusieurs applications en même temps. Les demandes simultanées peuvent en effet provoquer une limitation.

Introduction d'un « temps de repos » entre les appels

Si les appels de fonctions de code à destination des API Route 53 sont consécutifs, ajoutez un « temps de repos » entre les deux appels pour réduire le risque de limitation.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 10 mois