DynamoDB ConditionalCheckFailedException 抛出但成功

Yic*_*hao 7 database amazon-web-services amazon-dynamodb

我认为在很多情况下都看到 DynamoDB 条件放置抛出 ConditionalCheckFailedException 但成功了。通常在这种情况下,请求需要很长时间(约 10 秒)才能完成,但我可以看到请求已更新,尽管抛出了 ConditionalCheckFailedException(并且花了几秒钟)。

顺便说一下,我不会对 DDB 请求强制任何超时。

这是一个错误,还是我误解的某些 DDB 条件看跌合约?有没有人遇到过这个问题?

lee*_*gan 2

这么晚才回答是为了通知其他人:

ConditionCheckFailedException但项目仍然存在:

这种情况通常发生在您将项目保存到 DynamoDB 时,DynamoDB 确认写入请求,但响应在返回路径上丢失,发生这种情况的原因有多种,请记住,DynamoDB 是云中最大的分布式系统之一。

这会导致 SDK 在等待响应时超时,然后触发 SDK 重试。当重试写入请求时,条件现在评估为该False项目已存在,这反过来会抛出 a ConditionCheckFailedException,这可能会导致混乱。

当我收到一个项目时,我通常会对该项目ConditionCheckFailedException提出高度一致的请求,以确保它与我期望的值存在并继续前进。GetItem