Sto utilizzando Amazonica, una libreria Clojure per scrivere su DynamoDB."La richiesta condizionale non è riuscita" mentre la condizione funziona
Il seguente inserisce un oggetto in DynamoDB e ne aggiorna il contenuto se chiamato una seconda volta, che è previsto.
(ddb/put-item cred
:table-name table-name
:item payload)
Ora, il seguente inserisce un elemento solo la prima volta. Chiamarlo una seconda volta non fa nulla, ed è ciò di cui ho bisogno.
(ddb/put-item cred
:table-name table-name
:condition-expression "attribute_not_exists(clientId)"
:item payload)
Tuttavia, con l'ultima sto ottenendo un errore:
The conditional request failed (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ConditionalCheckFailedException;
... che in realtà non rendere il codice risultato finale. Il mio modello CloudFormation è molto semplice:
"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"
}
}
}
Mi manca qualcosa?