Wie behebe ich den Fehler „Das Attribut „Schlüssel“ existiert nicht“, wenn ich die Funktion Fn::GetAtt für meine Ressourcenanbieter-Ressource in CloudFormation verwende?

Lesedauer: 2 Minute
0

Wenn ich die Funktion Fn::GetAtt auf meinem Ressourcenanbieter in AWS CloudFormation verwende, erhalte ich die folgende Fehlermeldung: „Das Attribut ‚Schlüssel‘ existiert nicht“

Kurzbeschreibung

CloudFormation gibt den Fehler „Das Attribut „Schlüssel“ existiert nicht“ zurück, da es die erforderliche Eigenschaft nicht empfängt. Der ReadHandler Ihrer Ressource muss eine Eigenschaft zurückgeben, die aus der readOnlyProperties-Liste in der Schemadatei des Ressourcenanbieters organization-service-resource.json angegeben ist.

Weitere Fehler, die mit der Verwendung eines Ressourcenanbieters zusammenhängen, finden Sie in den folgenden Artikeln:

Behebung

  1. Vergewissern Sie sich in Ihrer Datei organization-service-resource.json, dass die readOnlyProperties-Definition das folgende Format verwendet, wobei Output eine Eigenschaft ist, die im Abschnitt properties definiert ist. Zum Beispiel:
"readOnlyProperties": [
    "/properties/Output"
],

**Hinweis:**Das Format organization-service-resource.json befindet sich im Stammverzeichnis Ihres Projekts.

  1. Stellen Sie in Ihrem ReadHandler die Eigenschaft im Modellobjekt ein. Zum Beispiel:
final ResourceModel model = request.getDesiredResourceState();
model.setOutput("abcdxyz");
return ProgressEvent.<ResourceModel, CallbackContext>builder()
    .resourceModel(model)
    .status(OperationStatus.SUCCESS)
    .build();

Verwandte Informationen

AWS CloudFormation CLI (von der GitHub-Website)

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren