Résolution des problèmes CloudFormation - AWS CloudFormation

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. Vous pouvez également rechercher des réponses et publier des questions dans les forums AWS CloudFormation.

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.

É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 le RetainResourcesparamè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_STACKoption avec le DeletionMode 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 que le AWS service concerné est en cours d'exécution, puis réessayez l'opération de pile.

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'ContinueUpdateRollbackAPIopé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 journaux sur 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#/. Avant de contacter l'assistance, collectez les informations suivantes :

  • 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.