Mes instances de pile qui se trouvent dans mes ensembles de piles AWS CloudFormation demeurent à l’état EN ATTENTE lors d'une mise à jour.
Brève description
Lorsque vous mettez à jour un ensemble de piles, la plupart des instances sont mises à jour pour afficher l'état ACTUEL. Cependant, certaines des instances restantes de la mise à jour peuvent afficher l’état EN ATTENTE.
Ce comportement est dû à la fonctionnalité qui gère les échecs d'ensembles de piles dans CloudFormation. La fonctionnalité modifie l'API ListStackInstances pour afficher le STATUT DÉTAILLÉ au lieu du STATUT des instances de pile.
Remarque : Les opérations relatives aux ensembles de piles incluent les mises à jour de l'ensemble de piles et la suppression d'instances de piles au sein d'un ensemble de piles.
Le statut EN ATTENTE se produit lorsque vous mettez à jour un ensemble de piles sans cible de déploiement spécifique pour ses instances d’ensemble de piles. En l'absence de cibles de déploiement, les instances à l’état EN ATTENTE attendent d'être mises à jour avec le dernier modèle d’ensemble de piles.
Pour résoudre ce problème, utilisez la console CloudFormation ou l'interface de la ligne de commande AWS (AWS CLI) pour mettre à jour l'ensemble de piles.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.
Utiliser la console CloudFormation
Lorsque vous mettez à jour votre ensemble de piles, utilisez votre modèle de pile actuel. Sur la page Définir les options de déploiement, saisissez les ID de compte AWS pour le compte que vous avez utilisé pour créer votre ensemble de piles et sélectionnez la région AWS. Une fois la pile mise à jour, l'état de l'instance passe de OBSOLÈTE à ACTUEL.
Utiliser l’AWS CLI
Procédez comme suit :
- Exécutez la commande list-stack-instances suivante pour afficher les instances à l’état EN ATTENTE :
aws cloudformation list-stack-instances --stack-set-name XXXXXXXXXXXXX
--filters Name=DETAILED_STATUS,Values=PENDING
Remarque : Remplacez stack-set-name par le nom de votre ensemble de piles.
- Exécutez la commande update-stack-set suivante pour mettre à jour l'ensemble de piles et les instances associées qui sont à l’état EN ATTENTE :
aws cloudformation update-stack-set \
--stack-set-name my-stack-set \
--use-previous-template \
--accounts xxxxxx \
--regions xxxxxx \
--administrator-role-arn xxxxxxxxxxxx
Remarque : Remplacez stack-set-name par le nom de votre ensemble de piles et incluez votre ID de compte, votre région et l'ARN de votre rôle d'administrateur. L'option use-previous-template utilise votre modèle de pile actuel pour mettre à jour l'ensemble de piles.