2016-05-23 11 views
1

Ich versuche, mit itemID als primäre Partition Schlüssel und createdAt als primäre Sortierschlüssel, mit einer Bedingung einer PutItem gegen DynamoDB Tabelle ausführen wie folgt:Warum funktioniert meine ConditionExpression in PutItem nicht?

{ 
    "TableName": "ShoppingBasket", 
    "Item": { 
     "itemID": { 
      "N": "7456473" 
     }, 
     "createdAt": { 
      "S": "2001-02-03T04:05:06Z" 
     } 
    }, 
    "ConditionExpression": "contains(createdAt, :created_at)", 
    "ExpressionAttributeValues": { 
     ":created_at": {"S": "Z"} 
    } 
} 

Der Ausdruck ist, um sicherzustellen, dass ISO8601 UTC-Zeit wird für das Attribut createdAt bereitgestellt. Aber es gibt mir: ConditionalCheckFailedException: The conditional request failed

Was mache ich falsch?

Antwort

0

Die Verwendung von contains für Elemente, die noch nicht vorhanden sind, wird immer als false ausgewertet. Führen Sie stattdessen vor dem Aufruf von PutItem eine Eingabevalidierung auf der Clientseite durch und überprüfen Sie, ob createdAt die richtige Form hat.

Verwandte Themen