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.
Résolution des problèmes CloudFormation
Lors de l'utilisation CloudFormation, vous pouvez rencontrer des problèmes lors de la création, de la mise à jour ou de la suppression de CloudFormation piles. Les sections suivantes peuvent vous aider à résoudre les problèmes courants qui peuvent se poser.
Pour des questions générales sur CloudFormation, consultez le AWS CloudFormation FAQs
Guide de dépannage
Si CloudFormation vous ne parvenez pas à créer, mettre à jour ou supprimer votre pile, vous pouvez consulter les messages d'erreur ou les journaux pour en savoir plus sur le problème. Les tâches suivantes décrivent les méthodes générales de résolution d'un CloudFormation problème. Pour plus d'informations sur des erreurs spécifiques et les solutions, consultez Résolution des erreurs.
-
Utilisez la CloudFormation console
pour consulter l'état de votre stack. Cette console vous permet de voir une liste des événements liés à une pile pendant que cette dernière est créée, mise à jour ou supprimée. Recherchez dans cette liste l'événement qui a échoué, puis consultez la raison du statut correspondant. La raison du statut peut contenir un message d'erreur provenant CloudFormation ou provenant d'un service particulier qui peut vous aider à résoudre votre problème. Pour plus d'informations sur l'affichage des événements d'une pile, consultez Afficher les informations relatives à la pile depuis la CloudFormation console. -
Pour les EC2 problèmes liés à Amazon, consultez les journaux cloud-init et cfn. Ces journaux sont publiés sur l'EC2instance Amazon dans le
/var/log/
répertoire. Ces journaux capturent les processus et les sorties de commandes lors CloudFormation de la configuration de votre instance. Pour Windows, consultez le EC2Configure service dans%ProgramFiles%\Amazon\EC2ConfigService
, EC2 Launch in%ProgramData%\Amazon\EC2-Windows\Launch\Logs
, EC2 Launch v2 in%ProgramData%\Amazon\EC2Launch\log
et cfn se connecteC:\cfn\log
.Vous pouvez également configurer votre CloudFormation modèle pour que les journaux soient publiés sur Amazon CloudWatch, qui affiche les journaux dans le AWS Management Console afin que vous n'ayez pas à vous connecter à votre EC2 instance Amazon. Pour plus d'informations, voir Afficher CloudFormation les journaux dans la console
dans le blog de gestion des applications.
Résolution des erreurs
Lorsque vous rencontrez les erreurs suivantes dans votre CloudFormation pile, vous pouvez utiliser les solutions suivantes pour vous aider à trouver la source des problèmes et à les résoudre.
Rubriques
- Échec de la suppression de la pile
- Erreur de dépendance
- AWS Config et AWS Systems Manager conflits
- Erreur d'analyse d'un paramètre lors de la transmission d'une liste
- Autorisations IAM insuffisantes
- Valeur non valide ou propriété de ressource non prise en charge
- Quota dépassé
- Les piles imbriquées restent bloquées à l'état UPDATE_COMPLETE_CLEANUP_IN_PROGRESS, UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS ou UPDATE_ROLLBACK_IN_PROGRESS
- Aucune mise à jour à effectuer
- La ressource n'a pas pu se stabiliser lors d'une opération de création, de mise à jour ou de suppression de pile
- Le groupe de sécurité n'existe pas dans VPC
- Échec de la restauration de la mise à jour
- La condition d'attente n'a pas reçu le nombre de signaux requis en provenance d'une EC2 instance Amazon
- Ressource retirée de la pile mais non supprimée
Échec de la suppression de la pile
Pour résoudre ce problème, essayez la méthode suivante :
-
Certaines ressources doivent être vides avant de pouvoir être supprimées. Par exemple, vous devez supprimer tous les objets d'un compartiment Amazon S3 ou supprimer toutes les instances d'un groupe de EC2 sécurité Amazon avant de pouvoir supprimer le compartiment ou le groupe de sécurité.
-
Assurez-vous de disposer des IAM autorisations nécessaires pour supprimer les ressources de la pile. Outre CloudFormation les autorisations, vous devez être autorisé à utiliser les services sous-jacents, tels qu'Amazon S3 ou AmazonEC2.
-
Lorsque les piles sont dans l'
DELETE_FAILED
état où elles n'ont pas CloudFormation pu supprimer une ressource, réexécutez la suppression avec leRetainResources
paramètre et spécifiez la ressource qui ne CloudFormation peut pas être supprimée. CloudFormation supprime la pile sans supprimer la ressource conservée. La conservation des ressources s'avère utile lorsque vous ne pouvez pas supprimer une ressource, telle qu'un compartiment S3 qui contient les objets que vous souhaitez conserver, mais que vous voulez supprimer la pile.Après avoir supprimé la pile, vous pouvez supprimer manuellement les ressources conservées à l'aide du AWS service associé.
Vous pouvez également envisager d'utiliser l'
FORCE_DELETE_STACK
option avec leDeletionMode
paramètre. Pour plus d'informations sur la suppression forcée d'une pile, consultez DeleteStack. -
Vous ne pouvez pas supprimer des piles pour lesquelles la protection contre la résiliation est activée. Si vous essayez de supprimer une pile pour laquelle la protection contre la résiliation est activée, la suppression échoue et la pile, et son statut, restent inchangés. Désactivez la protection contre la résiliation sur la pile, puis effectuez à nouveau l'opération de suppression.
Cela concerne également les piles imbriquées dont les piles racine sont protégées contre la résiliation. Désactivez la protection contre la résiliation sur la pile racine, puis effectuez à nouveau l'opération de suppression. Il est fortement recommandé de ne pas supprimer les piles imbriquées directement, mais de les supprimer uniquement dans le cadre de la suppression de la pile racine et de l'ensemble de ses ressources.
Pour de plus amples informations, veuillez consulter CloudFormation Empêcher les piles d'être supprimées.
-
Pour tous les autres problèmes, si vous en avez AWS Support, vous pouvez créer un AWS Support dossier. Consultez Contacter l'assistance.
Erreur de dépendance
Pour résoudre une erreur de dépendance, ajoutez un attribut DependsOn
aux ressources qui dépendent d'autres ressources dans votre modèle. Dans certains cas, vous devez déclarer explicitement les dépendances afin de CloudFormation pouvoir créer ou supprimer des ressources dans le bon ordre. Par exemple, si vous créez une adresse IP élastique et une adresse IP VPC avec une passerelle Internet dans la même pile, l'adresse IP élastique doit dépendre de la pièce jointe à la passerelle Internet. Pour plus d’informations, consultez Attribut DependsOn.
AWS Config et AWS Systems Manager conflits
AWS Config et AWS Systems Manager peut automatiser les tâches de gestion de l'infrastructure susceptibles d'entraîner des conflits lors du déploiement d'une CloudFormation pile. Procédez comme suit pour éviter tout conflit potentiel :
-
Passez en revue la configuration de AWS Config et de Systems Manager dans le fichier associé Compte AWS et Région AWS.
-
Vérifiez les règles actives ou les documents d'automatisation susceptibles d'être déclenchés lors d'un CloudFormation déploiement. Cela peut potentiellement provoquer des conflits ou des dépendances de ressources qui entrent en conflit avec votre déploiement.
-
Vérifiez que votre CloudFormation modèle contient toutes les ressources gérées par AWS Config et Systems Manager. Vérifiez les éventuels chevauchements ou interdépendances et envisagez d'ajuster le modèle ou la configuration d'automatisation pour éviter les conflits.
-
Désactivez ou suspendez temporairement AWS Config les règles associées ou les automatisations de Systems Manager pendant CloudFormation le déploiement. N'oubliez pas de restaurer les configurations d'origine après le déploiement réussi afin de maintenir le niveau d'automatisation et de conformité souhaité.
-
Consultez les CloudFormation journaux et les messages d'erreur pour détecter toute référence à AWS Config des problèmes liés à Systems Manager afin d'identifier la source du conflit.
Pour plus d'informations sur AWS Config les règles, consultez la section Évaluation des ressources avec AWS Config Rules.
Pour plus d'informations sur les automatisations de Systems Manager, consultez AWS Systems Manager Automatisation.
Erreur d'analyse d'un paramètre lors de la transmission d'une liste
Lorsque vous utilisez le AWS Command Line Interface ou CloudFormation pour transmettre une liste, ajoutez le caractère d'échappement (\
) avant chaque virgule. L'exemple suivant montre comment spécifier un paramètre d'entrée avec l' AWS CLI.
ParameterKey=CIDR,ParameterValue='10.10.0.0/16\,10.10.0.0/24\,10.10.1.0/24'
Autorisations IAM insuffisantes
Lorsque vous travaillez avec une CloudFormation pile, vous avez non seulement besoin d'autorisations pour l'utiliser CloudFormation, mais vous devez également avoir l'autorisation d'utiliser les services sous-jacents décrits dans votre modèle. Par exemple, si vous créez un compartiment Amazon S3 ou que vous démarrez une EC2 instance Amazon, vous devez disposer d'autorisations pour Amazon S3 ou AmazonEC2. Passez en revue votre IAM politique et vérifiez que vous disposez des autorisations nécessaires avant de travailler avec CloudFormation Stacks. Pour de plus amples informations, veuillez consulter Contrôlez CloudFormation l'accès avec AWS Identity and Access Management.
Valeur non valide ou propriété de ressource non prise en charge
Lorsque vous créez ou mettez à jour une CloudFormation pile, celle-ci peut échouer en raison de paramètres d'entrée non valides, de noms de propriétés de ressources non pris en charge ou de valeurs de propriétés de ressource non prises en charge. Pour les paramètres d'entrée, vérifiez que la ressource existe. Par exemple, lorsque vous spécifiez une paire de EC2 clés ou un VPC identifiant Amazon, la ressource doit exister dans votre compte et dans la région dans laquelle vous créez ou mettez à jour votre stack. Vous pouvez utiliser des types de paramètres AWS spécifiques pour vous assurer que vous utilisez des valeurs valides.
Pour les noms et les valeurs des propriétés de ressource, mettez à jour le modèle pour qu'il utilise des noms et des valeurs valides. Pour voir une liste de toutes les ressources et de leurs noms de propriété, consultez AWS référence aux types de ressources et de propriétés.
Quota dépassé
Vérifiez que vous n'avez pas atteint un quota de ressource. Par exemple, le nombre maximum par défaut d'instances Amazon EC2 On-Demand que vous pouvez lancer est de 5. Si vous essayez de créer plus d'instances Amazon EC2 On-Demand que le quota de votre compte, la création de l'instance échoue et vous recevez le message d'erreurStatus=start_failed
. Pour afficher les quotas AWS
par défaut et par service, veuillez consulter la rubrique AWS
service quotas dans Références générales AWS.
Pour les CloudFormation quotas et les stratégies d'ajustement, voir. Comprendre les CloudFormation quotas
De même, lors d'une mise à jour, si une ressource est remplacée, une nouvelle ressource est CloudFormation créée avant de supprimer l'ancienne. Ce remplacement pourrait entraîner le dépassement du quota de ressources associé à votre compte, ce qui provoquerait l'échec de la mise à jour. Vous pouvez supprimer des ressources inutilisées ou demander une augmentation de quota.
Les piles imbriquées restent bloquées à l'état UPDATE_COMPLETE_CLEANUP_IN_PROGRESS
, UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS
ou UPDATE_ROLLBACK_IN_PROGRESS
La restauration d'une pile imbriquée a échoué. En raison des dépendances potentielles entre les piles imbriquées, le nettoyage des ressources des piles imbriquées CloudFormation ne commence pas tant que toutes les piles imbriquées n'ont pas été mises à jour ou annulées. Lorsqu'une pile imbriquée ne parvient pas à revenir en arrière, toutes les opérations sont CloudFormation annulées, quel que soit l'état dans lequel se trouvent les autres piles imbriquées. Une pile imbriquée qui a terminé la mise à jour ou la restauration mais qui n'a pas reçu de signal indiquant de CloudFormation commencer le nettoyage car une autre pile imbriquée n'a pas réussi à revenir en arrière est dans un état UPDATE_COMPLETE_CLEANUP_IN_PROGRESS
ouUPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS
. Lorsqu'une pile imbriquée dont la mise a jour a échoué ne reçoit pas le signal pour commencer sa restauration, son état indique UPDATE_ROLLBACK_IN_PROGRESS
.
Une pile imbriquée peut ne pas être annulée en raison de modifications apportées en dehors de CloudFormation, lorsque le modèle de pile ne reflète pas exactement l'état de la pile. Une pile imbriquée peut également échouer si le délai d'expiration du signal pour son groupe Auto Scaling n'était pas suffisant lorsque ce dernier a été créé ou mis à jour.
Pour réparer la pile, contactez AWS Support.
Aucune mise à jour à effectuer
Pour mettre à jour une CloudFormation pile, vous devez soumettre des modifications de modèle ou de valeur de paramètre à CloudFormation. Toutefois, certaines modifications du modèle CloudFormation ne seront pas reconnues comme des mises à jour, telles que les modifications apportées à une politique de suppression, à une politique de mise à jour, à une déclaration de condition ou à une déclaration de sortie. Si vous avez besoin d'effectuer uniquement ces modifications, vous pouvez ajouter ou modifier les attributs de métadonnées de vos ressources. L'attribut de métadonnées peut être n'importe quelle valeur arbitraire, car CloudFormation il n'interprète pas son contenu.
La ressource n'a pas pu se stabiliser lors d'une opération de création, de mise à jour ou de suppression de pile
Une ressource n'a pas répondu car l'opération a dépassé le CloudFormation délai imparti ou parce qu'un AWS service a été interrompu. En cas d'interruption de service, vérifiez
Si les AWS services fonctionnent correctement, vérifiez si votre pile contient l'une des ressources suivantes :
-
AWS::AutoScaling::AutoScalingGroup
pour les opérations de création, de mise à jour et de suppression -
AWS::CertificateManager::Certificate
pour les opérations de création -
AWS::CloudFormation::Stack
pour les opérations de création, de mise à jour et de suppression -
AWS::ElasticSearch::Domain
pour les opérations de mise à jour -
AWS::RDS::DBCluster
pour les opérations de création et de mise à jour -
AWS::RDS::DBInstance
pour les opérations de création, de mise à jour et de suppression -
AWS::Redshift::Cluster
pour les opérations de mise à jour
Pour ces ressources, les opérations peuvent prendre plus de temps que le délai d'expiration par défaut. Le délai d'expiration varie en fonction de la ressource et des informations d'identification que vous utilisez. Pour allonger le délai d'expiration, spécifiez un rôle de service au moment d'effectuer l'opération de pile. Si vous utilisez déjà un rôle de service ou si votre pile contient une ressource qui n'est pas répertoriée, contactez le AWS Support.
Si votre pile indique l'état UPDATE_ROLLBACK_FAILED
, consultez Échec de la restauration de la mise à jour.
Le groupe de sécurité n'existe pas dans VPC
Vérifiez que le groupe de sécurité existe dans le groupe VPC que vous avez spécifié. Si tel est le cas, vérifiez que vous avez spécifié l'ID de groupe de sécurité, et pas le nom du groupe de sécurité. Par exemple, la ressource AWS::EC2::SecurityGroupIngress
possède les propriétés SourceSecurityGroupName
et SourceSecurityGroupId
. Pour les groupes VPC de sécurité, vous devez utiliser la SourceSecurityGroupId
propriété et spécifier l'ID du groupe de sécurité.
Échec de la restauration de la mise à jour
Une ressource dépendante ne parvient pas à rétablir son état d'origine, ce qui entraîne l'échec de la restauration (état UPDATE_ROLLBACK_FAILED
). Par exemple, vous pouvez avoir une pile qui revient à une ancienne instance de base de données supprimée en dehors 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.
Selon l'origine du problème, vous pouvez corriger manuellement l'erreur et poursuivre la restauration. De cette façon, vous pourrez rétablir l'état de fonctionnement de la pile (état UPDATE_ROLLBACK_COMPLETE
), puis réessayer de mettre à jour la pile. La liste suivante décrit les solutions à des erreurs courantes qui entraînent l'échec de restauration d'une mise à jour :
-
- Le nombre de signaux requis n'a pas été reçu
-
Utilisez la commande signal-resource pour envoyer manuellement le nombre de signaux de réussite requis à la ressource qui les attend, puis poursuivez la restauration de la mise à jour. Par exemple, pendant la restauration d'une mise à jour, les instances d'un groupe Auto Scaling ne parviennent pas toujours à signaler la réussite dans le délai spécifié. Dans ce cas, envoyez manuellement les signaux de réussite à ce groupe Auto Scaling. Lorsque vous poursuivez l'annulation de la mise à jour CloudFormation , elle reçoit vos signaux et procède à la restauration.
-
- Les modifications apportées à une ressource ont été effectuées en dehors de CloudFormation
-
Synchronisez manuellement les ressources pour qu'elles correspondent au modèle de la pile d'origine, puis poursuivez la restauration de la mise à jour. Par exemple, si vous avez supprimé manuellement une ressource à laquelle CloudFormation vous tentez de revenir, vous devez créer manuellement cette ressource avec le même nom et les mêmes propriétés que dans la pile d'origine.
-
- Autorisations insuffisantes
-
Vérifiez que vous disposez des IAM autorisations suffisantes pour modifier les ressources, puis poursuivez l'annulation des mises à jour. Par exemple, votre IAM politique peut vous autoriser à créer un compartiment S3, mais pas à le modifier. Ajoutez les actions de modification à votre politique.
-
- Jeton de sécurité non valide
-
CloudFormation nécessite un nouveau jeu d'informations d'identification. Aucune modification n'est requise. Continuez à restaurer la mise à jour, ce qui actualisera les informations d'identification.
-
- Erreur de limitation
-
Supprimez les ressources dont vous n'avez pas besoin ou demandez une augmentation de quota, puis poursuivez la restauration de la mise à jour. Par exemple, si le quota de votre compte pour le nombre d'instances EC2 à la demande est de 5 et que l'annulation des mises à jour dépasse ce quota, l'annulation échouera.
-
- La ressource ne s'est pas stabilisée
-
Une ressource n'a pas répondu car l'opération a peut-être dépassé le CloudFormation délai d'expiration ou parce qu'un AWS service a peut-être été interrompu. Aucune modification n'est requise. Une fois que l'opération sur la ressource est terminée ou que le AWS service est de nouveau opérationnel, continuez à annuler la mise à jour.
Pour continuer à annuler une mise à jour, vous pouvez utiliser la CloudFormation console ou l'interface de ligne de AWS commande (AWS CLI). Pour de plus amples informations, veuillez consulter Poursuite de la restauration d'une mise à jour.
Si aucune de ces solutions ne fonctionne, vous pouvez ignorer les ressources qui ne CloudFormation peuvent pas être restaurées avec succès. Pour plus d'informations, consultez le ResourcesToSkip
paramètre de l'ContinueUpdateRollback
APIopération dans la AWS CloudFormation APIréférence. 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 modifier les ressources ou mettre à jour la pile 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 votre pile sera irrécupérable.
La condition d'attente n'a pas reçu le nombre de signaux requis en provenance d'une EC2 instance Amazon
Pour résoudre ce problème, essayez la méthode suivante :
-
Assurez-vous que les scripts d' CloudFormation assistance que AMI vous utilisez sont installés. Si les scripts d'assistance AMI ne sont pas inclus, vous pouvez également les télécharger sur votre instance. Pour de plus amples informations, veuillez consulter CloudFormation référence des scripts d'assistance.
-
Vérifiez que la commande
cfn-signal
a été correctement exécutée au niveau de l'instance. Vous pouvez consulter des journaux, comme/var/log/cloud-init.log
ou/var/log/cfn-init.log
, afin de vous aider à déboguer le lancement de l'instance. Vous pouvez récupérer les journaux en vous connectant à votre instance, mais vous devez désactiver le rollback en cas d'échec, sinon CloudFormation supprimer l'instance lorsque la création de votre pile échoue. Vous pouvez également publier les journauxsur Amazon CloudWatch. Pour Windows, vous pouvez consulter les connexions cfn C:\cfn\log
et les connexions au EC2Config%ProgramFiles%\Amazon\EC2ConfigService
service. -
Vérifiez que l'instance est connectée à Internet. Si l'instance se trouve dans unVPC, elle doit pouvoir se connecter à Internet via un NAT appareil s'il se trouve dans un sous-réseau privé ou via une passerelle Internet s'il se trouve dans un sous-réseau public. Pour tester la connexion Internet de l'instance, essayez d'accéder à une page web publique, tel que
http://aws.amazon.com
. Par exemple, vous pouvez exécuter la commande suivante au niveau de l'instance. Il doit renvoyer un code d'état HTTP 200.curl -I https://aws.amazon.com
Pour plus d'informations sur la configuration d'un NAT appareil, consultez NATle guide de VPC l'utilisateur Amazon.
Ressource retirée de la pile mais non supprimée
Lors d'une mise à jour de pile, CloudFormation a supprimé une ressource d'une pile mais ne l'a pas supprimée. La ressource existe toujours, mais n'est plus accessible via CloudFormation. Cela peut se produire lors des mises à jour de pile où :
-
CloudFormation doit remplacer une ressource existante. Il crée donc d'abord une nouvelle ressource, puis tente de supprimer l'ancienne ressource.
-
Vous avez supprimé la ressource du modèle de pile. Vous CloudFormation essayez donc de la supprimer de la pile.
Cependant, il peut arriver que CloudFormation vous ne puissiez pas supprimer la ressource. Par exemple, si l'utilisateur ne dispose pas des autorisations nécessaires pour supprimer une ressource d'un type donné.
CloudFormation tente de supprimer l'ancienne ressource à trois reprises. S'il n'est pas CloudFormation possible de supprimer l'ancienne ressource, elle est supprimée de la pile et continue de mettre à jour la pile. Lorsque la mise à jour de la pile est terminée, CloudFormation un événement de UPDATE_COMPLETE
pile est émis, mais inclut un événement indiquant StatusReason
qu'une ou plusieurs ressources n'ont pas pu être supprimées. CloudFormation émet également un DELETE_FAILED
événement pour la ressource spécifique, avec un correspondant StatusReason
fournissant plus de détails sur les raisons de l' CloudFormation échec de la suppression de la ressource.
Pour résoudre ce problème, supprimez la ressource directement à l'aide de la console ou API pour le service sous-jacent.
Contacter l'assistance
Si c'est le cas AWS Support, vous pouvez créer un dossier de support technique à la https://console.aws.amazon.com/support/maison#/
-
ID de la pile. Vous trouverez l'ID de pile dans l'onglet Vue d'ensemble de la CloudFormation console
. Pour de plus amples informations, veuillez consulter Afficher les informations relatives à la pile depuis la CloudFormation console. Important
Ne modifiez pas la pile en dehors de CloudFormation. Apporter des modifications à votre pile en dehors de CloudFormation celle-ci peut la mettre dans un état irrécupérable.
-
Messages d'erreur associés à la pile. Pour découvrir comment accéder aux messages d'erreur de la pile, consultez Guide de dépannage.
-
Pour les EC2 problèmes liés à Amazon, collectez les journaux cloud-init et cfn. Ces journaux sont publiés sur l'EC2instance Amazon dans le
/var/log/
répertoire. Ces journaux capturent les processus et les sorties de commande lors de la configuration de l'instance. Pour Windows, rassemblez le EC2Configure service et cfn se connecte%ProgramFiles%\Amazon\EC2ConfigService
etC:\cfn\log
.
Vous pouvez également rechercher des réponses et poser des questions dans les CloudFormation forums