Comment résoudre l'erreur « Attribute 'Key' does not exist » (« L'attribut "Key" n'existe pas ») lorsque j'utilise la fonction Fn::GetAtt sur ma ressource fournisseur de ressources dans AWS CloudFormation ?
Date de la dernière mise à jour : 17/08/2020
Je reçois l'erreur « Attribute 'Key' does not exist » (« L'attribut "Key" n'existe pas ») lorsque j'utilise la fonction Fn::GetAtt sur ma ressource fournisseur de ressources dans AWS CloudFormation. Comment puis-je résoudre cette erreur ?
Brève description
Vous recevez l'erreur « Attribute 'Key' does not exist » (« L'attribut "Key" n'existe pas ») lorsque le ReadHandler de votre ressource ne renvoie pas de propriété spécifiée dans la liste ReadOnlyProperties du fichier de schéma du fournisseur de ressources organization-service-resource.json. AWS CloudFormation renvoie cette erreur, car il ne reçoit pas la propriété requise.
Si vous rencontrez des problèmes avec d'autres erreurs liées à l'utilisation d'un fournisseur de ressources, consultez les articles suivants pour connaître des étapes de dépannage supplémentaires :
- Comment résoudre l'erreur « Resource specification is invalid » (« La spécification de ressource est invalide ») lorsque j'exécute la commande cfn generate à l'aide de l'interface de ligne de commande CloudFormation dans AWS CloudFormation ?
- Comment résoudre l'erreur « Model validation failed (#: extraneous key [Key] is not permitted » (« Échec de la validation du modèle [# : la clé externe (Clé) n'est pas autorisée] ») dans AWS CloudFormation ?
- Comment résoudre l'erreur « Resource timed out waiting for creation of physical resource » (« Ressource expirée en attente de création d'une ressource physique ») lorsque je crée une ressource à l'aide de mon type de fournisseur de ressources dans AWS CloudFormation ?
- Comment résoudre l'erreur « java.lang.ClassNotFoundException: com.example.package.resource.HandlerWrapper » dans AWS CloudFormation ?
Résolution
1. Dans votre fichier organization-service-resource.json, vérifiez que la définition readOnlyProperties suit ce format, où Output est une propriété définie dans la section properties. Par exemple :
"readOnlyProperties": [
"/properties/Output"
],
Remarque : le fichier de schéma du fournisseur de ressources est un fichier JSON au format organization-service-resource.json et se trouve dans le répertoire racine de votre projet.
2. Dans votre ReadHandler, définissez la propriété (dans l'exemple suivant, Output) dans l'objet model . Par exemple :
final ResourceModel model = request.getDesiredResourceState();
model.setOutput("abcdxyz");
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.resourceModel(model)
.status(OperationStatus.SUCCESS)
.build();
Informations connexes
Cet article vous a-t-il été utile ?
Besoin d'aide pour une question technique ou de facturation ?