Avec une augmentation du nombre de groupes de déploiement dans AWS CodeDeploy, BitBucket Pipelines commencent à échouer plus souvent.
pipeline a échoué ...
+ python ./_scripts/codedeploy_deploy.py
Failed to deploy application revision.
An error occurred (ThrottlingException) when calling the GetDeployment operation (reached max retries: 4): Rate exceeded
Y a-t-il un moyen d'augmenter la valeur avant la limite de taux ou de réduire les risques d'occurrence?
AWS Forum Post: https://forums.aws.amazon.com/thread.jspa?messageid=892511
Malheureusement, il n'existe aucun moyen d'augmenter la limite de taux, car elle est fournie dynamiquement par l'AWS API.
Support AWS:
Cette question n'est liée à aucun déploiement simultané ou à une autre limite liée aux ressources. C'est un problème d'étranglement, qui ne peut pas être changé.
Plusieurs appels d'API initiés en même temps deviennent étrangers sur nos points de terminaison. La limite de chaque point d'extrémité varie et est dynamique, elle n'est donc documentée nulle part.
Dans ce cas, il existe plusieurs appels à l'API 'getDeployment' simultanément, par conséquent, les appels deviennent étrangers.
Dans de tels scénarios, nous vous recommandons de mettre en œuvre des tentatives d'erreur et des réactions exponentielles entre les tentatives, de sorte que les appels de l'API ne sont pas simultanés.
Vous pouvez vérifier le lien ci-dessous qui explique comment la mettre en œuvre dans notre code. - https://docs.aws.amazon.com/géneral/latest/gr/api-retries.html
J'ai pu mettre en œuvre un dos exponentiel pour réduire le taux auquel nous essayons d'obtenir le statut de déploiement et d'augmenter le nombre de tentatives avant l'échec du déploiement.
Assurez-vous d'utiliser la dernière version de Boto3 (Boto3-1.9.108 Botocore-1.12.108) qui prend en charge ce nouveau système de configuration.
Boto3 réessayez configuration: https://github.com/boto/botocore/issues/882#issuecomment-338846339
Fourchette: https://bitbucket.org/adanrehtla/aws-cOdeDeploy-bitbucket-Pipelines-pyThon/src/master/ Englisons
[.____] GIST: https://gist.github.com/djravine/5007E2A7F726CEBE14EA51C726CEBF5D
pipeline réussie ...
+ python ./_scripts/codedeploy_deploy.py
Deployment Created (Exponential back off 30s)
Deployment InProgress (Exponential back off 60s)
Deployment Succeeded
Remarque: Je mettrai à jour cet article avec plus d'informations car je révise l'utilisation sur la base de nos déploiements.