Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Poursuite de la restauration d'une mise à jour
Parfois, lorsque vous CloudFormation essayez d'annuler une mise à jour de la pile, il ne peut pas annuler toutes les modifications apportées au cours du processus de mise à jour. C'est ce qu'on appelle l'UPDATE_ROLLBACK_FAILED
État. Par exemple, vous pouvez avoir une pile qui commence à revenir à une ancienne instance de base de données supprimée à l'extérieur de CloudFormation. Comme il CloudFormation ne sait pas que la base de données a été supprimée, il suppose que l'instance de base de données existe toujours et tente d'y revenir, ce qui entraîne l'échec de l'annulation de la mise à jour.
Une pile dans UPDATE_ROLLBACK_FAILED
cet état ne peut pas être mise à jour, mais elle peut être ramenée à un état fonctionnel (UPDATE_ROLLBACK_COMPLETE
). Après avoir rétabli les paramètres d'origine de la pile, vous pouvez réessayer de la mettre à jour.
Dans la plupart des cas, vous devez corriger l'erreur qui entraîne l'échec de la restauration de la mise à jour avant de pouvoir continuer à restaurer la pile. Dans d'autres cas, vous pouvez poursuivre la restauration de la mise à jour sans aucune modification (par exemple, lorsqu'une opération de la pile arrive à expiration).
Note
Si vous utilisez des piles imbriquées, la restauration de la pile parent tente de restaurer également toutes les piles enfants.
Pour poursuivre la restauration d'une mise à jour (console)
Connectez-vous à la AWS CloudFormation console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudformation.
-
Dans la barre de navigation en haut de l'écran, choisissez l' Région AWS emplacement de la pile.
-
Sur la page Stacks, choisissez la pile que vous souhaitez mettre à jour, choisissez Stack actions, puis choisissez Continue update rollback.
Si aucune des solutions ne Résolution des erreurs fonctionne, vous pouvez utiliser l'option avancée pour ignorer les ressources qui ne CloudFormation peuvent pas être restaurées avec succès. Vous devez rechercher et saisir la logique IDs des ressources que vous souhaitez ignorer. Spécifiez uniquement les ressources qui sont entrées dans
UPDATE_FAILED
cet état pendantUpdateRollback
et non pendant la mise à jour directe.Avertissement
CloudFormation définit le statut des ressources spécifiées sur
UPDATE_COMPLETE
et continue de faire reculer la pile. Une fois la restauration terminée, l'état des ressources ignorées ne correspond pas à celui des ressources contenues dans le modèle de pile. Avant de procéder à une autre mise à jour de pile, vous devez mettre à jour la pile ou les ressources de façon à les rendre cohérentes les unes par rapport aux autres. A défaut, les futures mises à jour de la pile risquent d'échouer et la pile deviendra irrécupérable.Spécifiez le nombre minimum de ressources requises pour restaurer votre pile avec succès. Par exemple, une mise à jour de ressource ayant échoué peut entraîner l'échec de ressources dépendantes. Dans ce cas, il n'est peut-être pas nécessaire d'ignorer les ressources dépendantes.
Pour ignorer des ressources faisant partie de piles imbriquées, utilisez le format suivant :
. Si vous souhaitez spécifier l'ID logique d'une ressource de pile (NestedStackName
.ResourceLogicalID
Type: AWS::CloudFormation::Stack
) dans la listeResourcesToSkip
, sa ressource de pile imbriquée correspondante doit être à l'un des états suivants :DELETE_IN_PROGRESS
,DELETE_COMPLETE
ouDELETE_FAILED
.
Pour poursuivre la restauration d'une mise à jour (AWS CLI)
-
Utilisation de la continue-update-rollbackcommande avec la
--stack-name
possibilité de spécifier l'ID de la pile que vous souhaitez continuer à annuler.
Poursuivre la restauration après l'échec des mises à jour de la pile imbriquée
Lorsque plusieurs piles sont imbriquées les unes dans les autres, il se peut que vous deviez ignorer les ressources entre plusieurs niveaux imbriqués pour que la hiérarchie complète des piles revienne à un état fonctionnel.
Par exemple, vous avez une pile racine appelée WebInfra
qui contient deux piles plus petites : WebInfra-Compute
etWebInfra-Storage
. Ces deux piles contiennent également leurs propres piles imbriquées.
En cas de problème lors d'une mise à jour et que le processus de mise à jour échoue, l'ensemble de la hiérarchie de la pile peut se retrouver dans UPDATE_ROLLBACK_FAILED
cet état, comme le montre le schéma suivant.
Note
Les noms de pile de cet exemple sont tronqués par souci de simplification. Les noms des piles enfants sont généralement générés par CloudFormation et contiennent des chaînes aléatoires uniques, de sorte que les noms réels peuvent ne pas être faciles à utiliser.
Pour que la pile racine soit opérationnelle à l'aide de la continue-update-rollback
commande, vous devez utiliser l'--resources-to-skip
option permettant d'ignorer les ressources qui n'ont pas pu être annulées.
L'continue-update-rollbackexemple suivant reprend une opération de restauration suite à un échec antérieur de la mise à jour de la pile. Dans cet exemple, l'--resources-to-skip
option inclut les éléments suivants :
-
myCustom
-
WebInfra-Compute-Asg.myAsg
-
WebInfra-Compute-LB.myLoadBalancer
-
WebInfra-Storage.DB
Pour les ressources de la pile racine, il vous suffit de fournir l'identifiant logique, par exemple
. Toutefois, pour les ressources contenues dans des piles imbriquées, vous devez fournir à la fois le nom de la pile imbriquée et son identifiant logique, séparés par un point. Par exemple, myCustom
.WebInfra-Compute-Asg.myAsg
aws cloudformation continue-update-rollback --stack-name
WebInfra
\ --resources-to-skipmyCustom WebInfra-Compute-Asg.myAsg WebInfra-Compute-LB.myLoadBalancer WebInfra-Storage.DB
Pour trouver le nom d'une pile imbriquée
Vous pouvez le trouver dans l'ID de pile ou dans le nom de ressource Amazon (ARN) de la pile enfant.
L'ARNexemple suivant fait référence à une pile nomméeWebInfra-Storage-Z2VKC706XKXT
.
arn:aws:cloudformation:us-east-1:123456789012:stack/WebInfra-Storage-Z2VKC706XKXT/ea9e7f90-54f7-11e6-a032-028f3d2330bd
Pour trouver l'ID logique d'une pile imbriquée
Vous pouvez trouver l'ID logique d'une pile enfant dans le définition de modèle de son parent. Dans le diagramme, LogicalId
la pile WebInfra-Storage-DB
enfant se trouve DB
dans sa pile parentWebInfra-Storage
.
Dans la CloudFormation console, vous pouvez également trouver l'identifiant logique dans la colonne ID logique de la ressource de pile sous l'onglet Ressources ou dans l'onglet Événements. Pour de plus amples informations, veuillez consulter Afficher les informations relatives à la pile depuis la CloudFormation console.