Lorsque j'utilise la fonction Fn::GetAtt sur mon fournisseur de ressources dans AWS CloudFormation, je reçois l'erreur suivante :
« Attribute 'Key' does not exist » (L'attribut "Key" n'existe pas)
Brève description
CloudFormation renvoie l'erreur « Attribute 'Key' does not exist » (L'attribut "Key" n'existe pas), car il ne reçoit pas la propriété requise. Le ReadHandler de votre ressource doit renvoyer une propriété spécifiée dans la liste readOnlyProperties du fichier de schéma du fournisseur de ressources organization-service-resource.json.
Pour les autres erreurs liées à l'utilisation d'un fournisseur de ressources, veuillez consulter les articles suivants :
Solution
1. Dans votre fichier organization-service-resource.json, vérifiez que la définition readOnlyProperties utilise le format suivant, où Output est une propriété définie dans la section properties (propriétés). Par exemple :
"readOnlyProperties": [
"/properties/Output"
],
Remarque : le format organization-service-resource.json se trouve dans le répertoire racine de votre projet.
2. Dans votre ReadHandler, définissez la propriété dans l'objet model (modèle). Par exemple :
final ResourceModel model = request.getDesiredResourceState();
model.setOutput("abcdxyz");
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.resourceModel(model)
.status(OperationStatus.SUCCESS)
.build();
Informations connexes
Interface de ligne de commande AWS CloudFormation (depuis le site Web GitHub)