Passer au contenu

Comment puis-je résoudre les erreurs liées aux jeux de modifications dans CloudFormation ?

Lecture de 8 minute(s)
0

Je reçois un message d’erreur lorsque j’essaie d’importer des ressources dans une pile AWS CloudFormation.

Résolution

En fonction du type d'erreur que vous avez obtenu, suivez les étapes de la section correspondante pour résoudre le problème.

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'AWS CLI.

Erreur de sortie modifiée

Les sections Sorties des deux modèles doivent être identiques. Si vous créez une nouvelle pile avec un modèle d'importation de ressources dont les sorties s’effectuent sur la console CloudFormation, vous recevez une erreur similaire à la suivante :

« There was an error creating this change set. As part of the import operation, you cannot modify or add [Outputs] »

Cette erreur se produit également lorsque vous essayez d'importer une ressource dans une pile.

Pour résoudre cette erreur, vérifiez que la section Sorties du dernier modèle CloudFormation correspond au modèle actuellement utilisé par votre pile. Si les valeurs ne sont pas les mêmes, vous devez mettre à jour le dernier modèle pour qu’il corresponde aux valeurs et aux sorties de la section Sorties du modèle actuel.

Important : l’opération d’importation ne peut pas contenir d’ajouts ou de modifications pour les propriétés ID logique, Description, Valeur, Exportation ou Sorties.

Une fois l’opération d’importation terminée, mettez à jour la pile avec les modifications dans la configuration de Sorties. Vous pouvez également importer automatiquement des ressources AWS dans une pile CloudFormation.

Erreur de validation avec les attributs de pile

Si vous utilisez l'interface de ligne de commande AWS ou le kit SDK AWS pour créer un jeu de modifications de type IMPORT contenant des attributs de pile modifiés ou ajoutés, vous recevez une erreur similaire à la suivante :

« An error occurred (ValidationError) when calling the CreateChangeSet operation: As part of the import operation, you cannot modify or add [Tags] »

Cette erreur se produit lorsque votre jeu de modifications de type IMPORT inclut des attributs de pile modifiés.

Pour résoudre l’erreur, vérifiez que les attributs de pile inclus pour l’opération de création du jeu de modifications correspondent aux valeurs d’attribut actuelles de la pile.

Important : vous ne devez pas mettre pas à jour ou ajouter de nouvelles valeurs d’attribut.

Après avoir importé les ressources, vous pouvez mettre à jour vos attributs lors d’une opération de mise à jour distincte. Vous pouvez également importer automatiquement des ressources AWS dans une pile CloudFormation.

Erreur liée à une ressource modifiée

Au cours d’une opération d’importation, vous ne pouvez pas créer, mettre à jour ou supprimer une ressource. Si vous modifiez une ressource existante lors d'une opération d'importation de ressources, vous recevez une erreur similaire à la suivante :

« There was an error creating this change set. You have modified resources [ResourceName] in your template that are not being imported. Update, create or delete operations cannot be executed during import operations. »

Créez un jeu de modifications de type UPDATE plutôt qu’un jeu de modifications de type IMPORT. Vous pourrez ainsi identifier la source de la modification de la ressource. Puis, utilisez la même spécification de Ressources pour les ressources existantes et ajoutez uniquement les ressources appropriées à importer dans le modèle. Vous pouvez également importer automatiquement des ressources AWS dans une pile CloudFormation.

Erreur liée à la liste de ressources à importer

Si vous utilisez l'interface de ligne de commande AWS ou le kit SDK AWS pour créer un jeu de modifications de type IMPORT, l'un des messages d'erreur suivants s'affiche :

<ResourceName>« An error occurred (ValidationError) when calling the CreateChangeSet operation: Resources [] is missing from ResourceToImport list »

« Error: "An error occurred (ValidationError) when calling the CreateChangeSet operation: Must Provide at least one resource to import" »

Pour résoudre cette erreur, vérifiez que vous avez transmis un identifiant physique à la propriété --resources-to-import dans votre commande AWS CLI. Vous pouvez également utiliser la propriété ResourceToImport de l'API CreateChangeSet pour les ressources que vous souhaitez importer dans la pile.

Afin d’importer les ressources, vous devez transmettre un identifiant physique à toutes les nouvelles ressources. Pour résoudre cette erreur, vérifiez que vous avez inclus --resources-to-import dans votre commande AWS CLI ou ResourceToImport dans votre appel d'API. Assurez-vous également de répertorier les ressources à importer.

Erreur liée à la capacité IAM

Si votre jeu de modifications inclut des ressources IAM pour lesquelles vous n'êtes pas autorisé, l'un des messages d'erreur suivants s'affiche :

<StackName>« Error: Failed to create changeset for the stack: , ex: Waiter ChangeSetCreateComplete failed: Waiter encountered a terminal failure state: For expression "Status" we matched expected path: "FAILED" Status: FAILED. Reason: Requires capabilities: [CAPABILITY_NAMED_IAM] »

« When calling the CreateChangeSet operation: Requires capabilities : [CAPABILITY_IAM/CAPABILITY_NAMED_IAM] »

« Please acknowledge all checkboxes before proceeding. »

Pour résoudre cette erreur, procédez comme suit :

  1. Ouvrez la console CloudFormation.
  2. Choisissez Créer une pile avec les ressources existantes ou Mettre à jour la pile.
  3. Passez à la page Vérifier, puis choisissez Je reconnais qu'AWS CloudFormation peut créer des ressources IAM / Je reconnais qu'AWS CloudFormation peut créer des ressources IAM avec des noms personnalisés.

-ou-

Dans l'interface AWS CLI, lorsque vous utilisez les commandes create-stack et update-stack, spécifiez la valeur de CAPABILITY_IAM ou CAPABILITY_NAMED_IAM pour le paramètre --capabilities.

Remarque : si votre modèle CloudFormation inclut des ressources Gestion des identités et des accès AWS (AWS IAM), vous devez reconnaître CAPABILITY_IAM. Si votre modèle inclut des noms personnalisés pour les ressources IAM, vous devez spécifier la valeur CAPABILITY_NAMED_IAM. Pour plus d'informations, consultez la section Capacités de Référence de l’action de déploiement d'AWS CloudFormation.

Erreur « Submitted information didn't contain changes » lors de l'opération de mise à jour de la pile

Si vous utilisez le même modèle de pile lors de l'opération de mise à jour de la pile, l'un des messages d'erreur suivants s'affiche :

« The submitted information didn't contain changes. Submit different information to create a change set »

« An error occurred (ValidationError) when calling the DeleteStack operation: No updates are to be performed. »

Pour résoudre cette erreur, procédez comme suit :

  • Vérifiez que vous avez apporté des modifications à la pile. CloudFormation ne considère pas les modifications apportées aux paramètres ou à la description de la pile comme des modifications apportées au modèle de pile.
  • Assurez-vous que les ressources ont subi des modifications importantes. Par exemple, si vous souhaitez ajouter une description à la pile, apportez la modification la prochaine fois que vous mettrez à jour les autres ressources de la pile.
  • Apportez une modification importante, telle que la modification des identifications de la pile, afin d'activer une détection de changement pour la pile. Par exemple, si vous ajoutez uniquement une description au modèle, une erreur peut s’afficher. Toutefois, si vous modifiez également les identifications de pile lorsque vous créez un jeu de modifications, l'erreur ne s’affichera pas.
  • Ajoutez des métadonnées personnalisées à l'une des ressources pour activer une modification.<br id=hardline_break/> Exemple de modèle :
    Description: This description is the cause of the error when only updating this field.
    Resources:
      myResource:
        Type: MyResourceType
        Properties: MyResourceProperties
        Metadata: ### ADD THIS CUSTOM METADATA
          test: 1 ### ANY KEY-VALUE PAIR
    Remarque : remplacez MyResourceType par votre type de ressource et MyResourceProperties par les propriétés de votre ressource.

Si vous ne parvenez toujours pas à mettre à jour votre pile, contactez AWS Support.

Erreur liée à l'appel d'API ExecuteChangeSet

Vous ne pouvez pas utiliser simultanément le paramètre OnStackFailure dans l'API CreateChangeSet et le paramètre DisableRollback dans l'API ExecuteChangeSet.

« Either DisableRollback or OnStackFailure can be specified, but not both. Validation error as OnStackFailure parameter was specified during CreateChangeSet. »

Pour résoudre cette erreur, assurez-vous de ne pas utiliser ces deux paramètres ensemble.

Erreur due à une incompatibilité entre l'entrée et le format sur la console pour le jeu de modifications

Si vous utilisez des références dynamiques AWS Secrets Manager avec un format incorrect dans le modèle CloudFormation, l'une des erreurs suivantes s'affiche :

« Given input did not match expected format »

« Incorrect format is used in the following SSM reference »

Pour résoudre cette erreur, assurez-vous de suivre les bonnes pratiques pour vos références dynamiques Secrets Manager. Pour plus d'informations, consultez la section Obtenir des valeurs stockées dans d'autres services à l'aide de références dynamiques.

Informations connexes

Création d’une pile à partir de ressources existantes

Importation de ressources existantes dans une pile

Prise en charge des types de ressources

Importer des ressources AWS dans une pile CloudFormation

AWS OFFICIELA mis à jour il y a 5 mois