Comment résoudre l'erreur « Échec de la validation du paramètre : la valeur 'abc' du paramètre 'ABC' n'existe pas » dans AWS CloudFormation ?

Dernière mise à jour : 08/07/2020

Lorsque je crée ou met à jour ma pile AWS CloudFormation, l'erreur suivante s'affiche : « Échec de la validation du paramètre : la valeur 'abc' du paramètre 'ABC' n'existe pas ». Comment puis-je résoudre cette erreur ?

Brève description

AWS CloudFormation renvoie cette erreur lorsque l'un des paramètres utilisés dans votre modèle AWS CloudFormation est un type de paramètre spécifique à AWS.

Vous pouvez recevoir cette erreur lorsque vous utilisez un paramètre spécifique à AWS :

  • Pour transmettre une valeur qui n'existe pas dans la région ou le compte AWS lors de la création de la pile.
  • En tant que propriété d'une ressource, puis supprimez cette valeur hors bande avant de mettre à jour la ressource pendant la mise à jour de la pile.
  • En tant que paramètre dans une pile enfant. L'erreur se produit lorsque la valeur de la pile enfant transmise à partir de la pile parent ne correspond pas au type de paramètre, ou que la ressource du paramètre n'existe pas dans le compte de cette région.

Remarque : si vous recevez des message d'erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), vérifiez que vous utilisez la version la plus récente d'AWS CLI.

Résolution

Créer une pile

1.    Ouvrez la console AWS CloudFormation.

2.    Dans le volet de navigation, sélectionnez Piles.

3.    Formez la colonne Nom de la pile, puis choisissez la pile qui n'a pas pu être créée ou mise à jour.

4.    Choisissez l'onglet Paramètres.

5.    Dans la colonne Clé, recherchez le paramètre ABC ayant la valeur abc.

6.    Pour vérifier que la ressource abc correspond au type de paramètre spécifique à AWS, consultez la section Paramètres du modèle AWS CloudFormation utilisé pour créer la pile.

7.    Pour vérifier que la ressource abc du paramètre ABC existe dans la région ou le compte, utilisez AWS Management Console ou la commande de l'AWS CLI pour décrire la ressource. Pour trouver la commande appropriée à votre ressource, consultez la section Trouver la commande de description pour votre ressource.

Remarque : Par exemple, si vous utilisez le type de paramètre AWS::EC2::VPC::Id, vérifiez la ressource dans la console Amazon Virtual Private Cloud (Amazon VPC).

8.    Si ABC est un paramètre de la pile enfant, vous devez transmettre la valeur abc en choisissant l'option A ou l'option B.

(Option A) Si vous faites référence à une autre ressource dans la pile parent, vérifiez que cette ressource correspond au type de paramètre spécifique à AWS utilisé dans la pile enfant.

Remarque : Par exemple, la pile échoue si vous utilisez le type de paramètre AWS::EC2::Subnet::Id (sous-réseau) et faites référence à une ressource de type AWS::EC2::VPC.

(Option B) Si la valeur de paramètre abc est transmise directement à partir de la pile parent, vérifiez que la ressource abc du paramètre ABC existe dans la région ou le compte. Utilisez AWS Management Console ou la commande AWS CLI pour décrire la ressource. Pour trouver la commande appropriée à votre ressource, consultez la section Trouver la commande de description pour votre ressource.

Par exemple, supposons le paramètre List<AWS::EC2::SecurityGroup::Id> dans la pile enfant :

"SecurityGroups": {
    "Description": "List of security group IDs for the instances",
    "Type": "List<AWS::EC2::SecurityGroup::Id>"
}

La valeur du paramètre est transmise à partir de la pile parent. Par exemple :

"ChildStack" : {
 "Type" : "AWS::CloudFormation::Stack",
 "Properties" : {
    "Parameters":{
      "KeyPair" : { "Ref": "KeyPair" },
      "ImageID" : { "Ref": "ImageID" },
      "InstanceType" : { "Ref": "InstanceType" },
      "SecurityGroups" : { "Ref": "SecurityGroup" }
    }

Important : dans l'exemple précédent, vous devez vérifier que la valeur de l'ID du groupe de sécurité transmis au paramètre SecurityGroup existe dans la région ou le compte.

9.    Créez une pile avec une valeur valide pour le paramètre qui existe dans votre région ou compte et qui correspond au type de paramètre spécifique à AWS.

Mettez à jour la pile

Lorsque la mise à jour de la pile échoue, AWS CloudFormation annule les modifications. Cela signifie que vous ne pouvez pas voir la valeur du paramètre mise à jour via la console AWS CloudFormation.

Si vous n'avez pas modifié la valeur du paramètre ABC pendant la mise à jour, la ressource ayant abc pour nom ou PhysicalID pourrait avoir été supprimée du compte hors bande.

1.    Pour vérifier que la ressource existe, utilisez AWS Management Console ou la commande AWS CLI pour décrire la ressource. Pour trouver la commande appropriée à votre ressource, consultez la section Trouver la commande de description pour votre ressource.

2.    Si vous mettez à jour la pile via la mise à jour du paramètre ABC, suivez les étapes 6,7 et 8 de la section Créer une pile précédente.

3.    Mettez à jour la pile en transmettant une valeur valide au paramètre ABC.

La mise à jour de la pile devrait maintenant s'effectuer avec succès.

Trouver la commande de description pour votre ressource

Choisissez la commande appropriée à votre ressource :

  • Pour AWS::EC2::Image::Id ou List<AWS::EC2::Image::Id>, utilisez la commande pour AWS CLI version 1 ou version 2.
  • Pour AWS::EC2::Instance::Id ou List<AWS::EC2::Instance::Id>, utilisez la commande pour AWS CLI version 1 ou version 2.
  • Pour AWS::EC2::KeyPair::KeyName, utilisez la commande pour AWS CLI version 1 ou version 2.
  • Pour AWS::EC2::SecurityGroup::GroupName, AWS::EC2::SecurityGroup::Id, List<AWS::EC2::SecurityGroup::GroupName> ou List<AWS::EC2::SecurityGroup::Id>, utilisez la commande pour AWS CLI version 1 ou version 2.
  • Pour AWS::EC2::Subnet::Id ou List<AWS::EC2::Subnet::Id>, utilisez la commande pour AWS CLI version 1 ou version 2.
  • Pour AWS::EC2::VPC::Id ou List<AWS::EC2::VPC::Id>, utilisez la commande pour AWS CLI version 1 ou version 2.
  • Pour AWS::Route53::HostedZone::Id ou List<AWS::Route53::HostedZone::Id>, utilisez la commande pour AWS CLI version 1 ou version 2.

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?