AWS DynamoDB 是否会消耗因条件表达式而失败的 Put Item(写入)操作的吞吐量或费用?

Ren*_*rro 5 amazon-web-services amazon-dynamodb

我无法找到一个简单的答案。

考虑带有条件表达式的DynamoDB Put Item 请求。

假设条件失败并且 DynamoDB 返回错误。换句话说:Put Item 请求未成功,并且没有有效写入任何内容。

该请求是否仍然消耗写入吞吐量(或者如果表处于按需模式,则需要付费)?

Den*_*aub 5

如果 ConditionExpression 在条件写入期间评估为 false,DynamoDB 仍会消耗表中的写入容量:

  • 如果表中当前不存在该项目,DynamoDB 会消耗一个写入容量单位。

  • 如果该项目确实存在,则消耗的写入容量单位数取决于该项目的大小。例如,1 KB 项目的条件写入失败将消耗一个写入容量单位。如果该项目的大小是该大小的两倍,则失败的条件写入将消耗两个写入容量单位。

失败的条件写入返回一个ConditionalCheckFailedException. 发生这种情况时,您不会在响应中收到有关所消耗的写入容量的任何信息。但是,您可以ConsumedWriteCapacityUnits在 Amazon CloudWatch 中查看表的指标。

This and more information can be found in the DynamoDB documentation article Working with Items and Attributes.