Lorsque je crée une ressource avec AWS CloudFormation, je reçois une erreur « Échec de la validation du modèle » dans mes événements de pile.
Brève description
Les valeurs Type, Allowed, Minimum, Maximum et Pattern sont les critères d'acceptation pour la création d'une propriété de la ressource à l'aide d'un modèle CloudFormation. Si l'une de ces valeurs de propriété n'est pas correctement définie, l'une des erreurs suivantes « Échec de la validation du modèle » s'affiche :
- Model Validation Failed (#PropertyName: Failed validation constraint for keyword [type]) (Échec de la validation du modèle (#PropertyName : échec de la contrainte de validation pour le mot-clé [type]))
- Model Validation Failed (#PropertyName: Failed validation constraint for keyword [pattern]) (Échec de la validation du modèle (#PropertyName : échec de la contrainte de validation pour le mot-clé [modèle]))
- Model validation failed (#PropertyName: expected type: Number, found: String) (Échec de la validation du modèle (#PropertyName : type attendu : nombre, trouvé : chaîne))
Remarque : les messages d'erreur précédents sont des exemples. Dans l'erreur que vous recevez, PropertyName est spécifié.
Solution
- Dans l'événement de pile CloudFormation, identifiez la propriété du type de ressource qui a échoué. Par exemple, Namespace est une propriété de la ressource AWS::CloudWatch::Alarm.
- Identifiez le type de ressource qui rencontre l'erreur. Par exemple, AWS::CloudWatch::Alarm.
- Recherchez les propriétés de la ressource.
- Comparez les valeurs de propriété définies dans le modèle avec les valeurs de propriété correctes que vous avez trouvées à l'étape 3.
Remarque : certaines propriétés n'incluent pas de limites de caractères minimales ou maximales.
- Si les valeurs de propriété de la ressource ne répondent pas aux critères d'acceptation, modifiez le modèle avec les valeurs requises.
- Mettez à jour la pile CloudFormation en utilisant le nouveau modèle.
Voici un exemple de critères d'acceptation pour la propriété Namespace pour le type de ressource AWS::CloudWatch:Alarm :
Obligatoire : No
Type : String
Minimum : 1
Maximum : 255
Modèle : [^:].*
La mise à jour nécessite : No interruption (aucune interruption)
Remarque : pour que les critères Namespace soient acceptés, le type doit être défini sur String, la limite de caractères doit être comprise entre 1 et 255 et le modèle doit être [^:].*.