Lorsque j'utilise AWS CodeDeploy avec Auto Scaling, les actions de cycle de vie n'aboutissent pas et les instances ne démarrent pas. Comment puis-je résoudre le problème ?

AWS CodeDeploy utilise le concept de hooks de cycle de vie dans Auto Scaling pour effectuer ses déploiements. Ce concept peut avoir un impact sur la séquence des états du cycle de vie d'une instance pour plusieurs raisons, notamment :

  • Echec de déploiements
  • Association de plusieurs groupes de déploiement à un seul groupe Auto Scaling
  • Hooks de cycle de vie restants associés à des applications supprimées

Affichez l'historique de dimensionnement de votre groupe Auto Scaling dans la console Amazon EC2 ou exécutez la commande de l'interface de ligne de commande AWS describe-scaling-activities (reportez-vous aux exemples dans la documentation) et recherchez :

L'erreur suivante indique généralement l'échec d'un déploiement :

Description: Launching a new EC2 instance: i-f362a82e. Status Reason: Instance failed to complete user's Lifecycle Action: Lifecycle Action with token 0fc62a4b-153b-4dba-9bf4-9f233e72a697 was abandoned: Lifecycle Action Completed with ABANDON Result

Cause: At 2016-07-22T16:16:56Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 2 to 3.

L'échec d'un déploiement entraîne également l'échec des actions de cycle de vie. Dans la console AWS CodeDeploy, recherchez la raison de l'échec du déploiement. Pour plus d'informations sur la résolution des problèmes courants liés au déploiement, consultez Résolution des problèmes de déploiement.

L'erreur suivante se produit généralement lorsque plusieurs groupes de déploiement sont associés à un même groupe Auto Scaling :

Description: Launching a new EC2 instance: i-649f40a2. Status Reason: Instance failed to complete user's Lifecycle Action: Lifecycle Action with token 95c60857-3c0a-4a67-8518-6dc18797e421 was abandoned: Heartbeat Timeout

Cause: At 2016-07-23T05:08:35Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 1 to 2.

Lorsque plusieurs déploiements envoient simultanément des commandes à l'agent AWS CodeDeploy, il arrive souvent que la limite de cinq minutes dans la logique d'expiration d'AWS CodeDeploy soit dépassée. Consolidez ces déploiements dans un seul groupe de déploiement et supprimez les groupes de déploiement non requis afin que les hooks de cycle de vie soient correctement supprimés.

Si les hooks de cycle de vie associés à des groupes de déploiement comportant des applications supprimées sont encore actifs (généralement, parce qu'une application a été supprimée avant ses groupes de déploiement), suivez les instructions détaillées dans Les instances Amazon EC2 d'un groupe Auto Scaling ne parviennent pas à démarrer et reçoivent l'erreur « Heartbeat Timeout ».

Remarque : A la fin du hook de cycle de vie, le résultat est ABANDON ou CONTINUE.

Si l'instance est en cours de lancement, CONTINUE indique que les actions ont été réussies et qu'Auto Scaling peut mettre l'instance en service. Sinon, ABANDON indique que les actions personnalisées ont échoué et qu'Auto Scaling peut mettre l'instance hors service.

Si l'instance est en cours de mise hors service, ABANDON et CONTINUE autorisent l'instance à s'arrêter. Cependant, ABANDON arrête les actions restantes, comme les autres hooks de cycle de vie, tandis que CONTINUE autorise les hooks de cycle de vie à se terminer.

AWS CodeDeploy définit le paramètre de résultat par défaut des hooks de cycle de vie sur ABANDON, mais il le définit sur CONTINUE après un déploiement réussi. Pour plus d'informations, consultez Résultat de l'action du cycle de vie et --default-result (chaîne) dans la section Options de put-lifecycle-hook.

Auto Scaling, AWS CodeDeploy, hook de cycle de vie, groupe de déploiement, délai d'expiration, délai d'attente des pulsations, résultat abandon


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 25/08/2016