"Die bedingte Anforderung fehlgeschlagen" in der Erwägung, dass die Bedingung funktioniert

Ich bin mit Amazonica, eine Clojure-Bibliothek zu schreiben, zu DynamoDB.

Den folgenden fügt ein Element in DynamoDB und aktualisiert Ihren Inhalt, wenn ein zweites mal aufgerufen, was zu erwarten ist.

(ddb/put-item cred
   :table-name table-name
   :item payload)

Nun, die folgenden fügt ein Element nur die erste Zeit. Nannte es ein zweites mal nicht tun, das ist, was ich brauche.

(ddb/put-item cred
   :table-name table-name
   :condition-expression "attribute_not_exists(clientId)"
   :item payload)

Jedoch mit der neuesten bekomme ich eine Fehlermeldung:

Die bedingte Anforderung ist fehlgeschlagen (Dienst: AmazonDynamoDBv2; Status Code: 400; Fehler-Code: ConditionalCheckFailedException;

... die nicht wirklich den code lieferbar. Meine CloudFormation-Vorlage ist sehr einfach:

"Resources": {
  "ClientTable": {
    "Type": "AWS::DynamoDB::Table",
    "Properties": {
      "AttributeDefinitions": [
        { "AttributeName": "clientId", "AttributeType": "S" }
      ],
      "KeySchema": [
        { "AttributeName": "clientId", "KeyType": "HASH" }
      ],
      "ProvisionedThroughput": {
        "ReadCapacityUnits": { "Ref": "ReadCapacityUnits" },
        "WriteCapacityUnits": { "Ref": "WriteCapacityUnits" }
      },
      "TableName": "ClientTable"
    }
  }
}

Bin ich etwas fehlt?

Schreibe einen Kommentar