我正在使用 Amazonica,一个 Clojure 库来写入 DynamoDB。
下面将一个项目插入 DynamoDB 并在第二次调用时更新其内容,这是预期的。
(ddb/put-item cred
:table-name table-name
:item payload)
现在,以下仅第一次插入一个项目。第二次调用它不会做任何事情,这是我需要的。
(ddb/put-item cred
:table-name table-name
:condition-expression "attribute_not_exists(clientId)"
:item payload)
但是最近我收到一个错误:
条件请求失败(服务:AmazonDynamoDBv2;状态代码:400;错误代码:ConditionalCheckFailedException;
...这并没有真正使代码可交付。我的 CloudFormation 模板非常简单:
"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"
}
}
}
我错过了什么吗?