Mon application reçoit un message d’erreur similaire à « Throttling : Rate exceeded, status code: 400,».
Brève description
Les appels d’API depuis la Console de gestion AWS, l’interface de la ligne de commande AWS (AWS CLI) et les applications contribuent à la limite de taux maximale pour votre compte AWS.
Remarque : vous ne pouvez pas augmenter les limites de taux des services AWS.
Résolution
Pour éviter les erreurs de limitation, suivez les bonnes pratiques suivantes :
- Implémentez le backoff exponentiel dans le code de votre application. Le backoff exponentiel entraîne des temps d’attente plus longs chaque fois qu’un appel d’API à AWS est limité. En fonction de l’application, le nombre maximum de retards et le nombre maximum de nouvelles tentatives peuvent varier.
Remarque : le kit SDK AWS met en œuvre une logique de nouvelle tentative automatique et des algorithmes de backoff exponentiel.
- Certaines applications peuvent implémenter la mise en cache pour réduire le taux d’appels d’API. Supposons, par exemple, que votre application appelle l’appel d’API AssumeRole pour un flux de travail intercomptes. Cela signifie que les informations d’identification temporaires que vous avez reçues peuvent être stockées et réutilisées pour plusieurs appels intercomptes. De plus, vous n’avez pas besoin d’effectuer un nouvel appel AssumeRole pour chaque appel d’API intercomptes effectué.
- Si votre application appelle AssumeRole et met en cache les informations d’identification, vérifiez la durée de session maximale des informations d’identification temporaires du rôle. Lorsque vous prolongez la durée des informations d’identification temporaires, vous n’avez pas besoin d’appeler AssumeRole aussi souvent.
- Répartissez vos appels d’API sur une plus longue période au lieu de les appeler toutes en même temps. Par exemple, les applications dont la tâche quotidienne appelle SimulatePrincipalPolicy ou GenerateServiceLastAccessedDetails pour auditer les autorisations des utilisateurs et des rôles pour AWS Identity and Access Management (IAM). Vous pouvez échelonner les appels d’API plutôt que de les exécuter en même temps.
- Pour les applications qui modifient dynamiquement les autorisations des politiques IAM à l’aide d’appels d’API comme CreatePolicyVersion, envisagez une autre méthode. Par exemple, vous pouvez utiliser des politiques de session lors de l’attribution du rôle IAM.
- Pour les erreurs de limitation du Service de jetons de sécurité AWS (AWS STS), utilisez les points de terminaison AWS Regional STS au lieu d’envoyer tous les appels AWS STS au point de terminaison mondial. Chaque point de terminaison a une limite de limitation distincte. Les points de terminaison AWS STS régionaux peuvent fournir aux applications un temps de réponse plus rapide lors des appels d’API AWS STS.
- Les comptes AWS étant soumis à des limites de limitation distinctes, envisagez de répartir les charges de travail sur plusieurs comptes à l’aide d’AWS Organizations. La création de nouveaux comptes AWS est gratuite et les organisations proposent une option de facturation consolidée. Les politiques de contrôle des services (SCP) vous permettent de contrôler les autorisations maximales des utilisateurs et des rôles IAM sur un compte AWS. Pour plus d’informations, consultez Gérer les comptes via AWS Organizations et regardez la vidéo How do I get started with AWS Organizations?
Informations connexes
Comment puis-je créer automatiquement des tables dans Amazon Athena pour effectuer des recherches dans les journaux AWS CloudTrail ?
Comment puis-je savoir quel appel d’API est à l’origine de l’erreur « Dépassement du taux » ?