Comment résoudre les erreurs de jeu de modifications dans CloudFormation ?

Dernière mise à jour : 17/03/2021

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

Brève description

En fonction du type d'erreur que vous recevez, suivez les étapes décrites dans l'une des sections suivantes

  • Résoudre l'erreur de sortie
  • Résoudre l'erreur de validation avec les attributs de pile
  • Résoudre l'erreur de ressource modifiée
  • Résoudre l’erreur de liste des ressources à importer

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.

Solution

Résoudre l'erreur de sortie

Si vous recevez l’erreur suivante :

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

Essayez ces étapes de dépannage :

1.    Comparez la section Outputs (Sorties) du dernier modèle CloudFormation avec le modèle que votre pile est en train d’utiliser. Les sections Outputs des deux modèles doivent être identiques.

Si les valeurs ne sont pas les mêmes, mettez à jour le dernier modèle pour qu'il corresponde exactement aux mêmes valeurs et sorties de la section Outputs du modèle que votre pile utilise actuellement.

Important : l'opération d'importation ne peut pas contenir d'ajouts et de modifications à Logical ID (ID logique), Description, Value (Valeur), Export (Exporter) et autres propriétés dans Outputs.

2.    Une fois l'opération d'importation terminée, mettez à jour à nouveau la pile avec les modifications souhaitées dans la configuration de Outputs.

Résoudre l'erreur de validation avec les attributs de pile

Si vous recevez l’erreur suivante :

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

Essayez ces étapes de dépannage :

1.    Vérifiez que les attributs de la pile (comme Tags ou NotificationARNs) inclus pour l'opération de création de jeu de modifications sont synchronisés avec les valeurs d'attribut actuelles de la pile.

Important : veillez à ne pas mettre à jour ou ajouter de nouvelles valeurs d'attribut.

2.    Une fois les ressources importées, mettez à jour vos attributs lors d’une autre opération de mise à jour.

Remarque : cette erreur survient lorsqu'un jeu de modifications de type IMPORT est créé à l'aide de l'interface de ligne de commande AWS ou du kit SDK AWS et contient des attributs de pile modifiés ou ajoutés.

Résoudre l'erreur de ressource modifiée

Cette erreur survient lorsqu'une ressource existante est modifiée au cours d'une opération d'importation de ressources. Lors d'une opération d'importation, la création, la mise à jour et la suppression ne sont pas autorisées.

Si vous recevez cette erreur :

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.

Essayez de procéder comme suit :

1.    Créez un jeu de modifications de type UPDATE au lieu d'IMPORT. Cela vous indique la source de la modification de la ressource.

2.    Utilisez exactement la même spécification de Resources pour les ressources existantes et ajoutez uniquement les ressources qui doivent être importées dans le modèle.

Résoudre l’erreur de liste des ressources à importer

Si vous recevez l’erreur suivante :

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

Essayez de procéder comme suit :

1.    Dans votre modèle CloudFormation, vérifiez que vous transmettez un ID physique dans la propriété ResourceToImport (Ressource à importer) pour toutes les ressources que vous souhaitez importer dans la pile.

Si vous recevez l’erreur suivante :

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

Essayez de procéder comme suit :

1.    Vérifiez que vous incluez --resources-to-import dans votre commande AWS CLI ou ResourceToImport dans votre appel d’API. Assurez-vous également de lister toutes les ressources à importer.

Remarque : ces erreurs surviennent généralement lorsqu'un jeu de modifications de type IMPORT est créé à l'aide de l'interface de ligne de commande AWS ou du kit SDK AWS.

Important : vous devez transmettre un ID physique à toutes les nouvelles ressources pour l'importation.