DynamoDB 仪表板无法保存/更新项目:ConditionalCheckFailedException

Bob*_*tle 4 amazon-web-services amazon-dynamodb

我需要使用 AWS 控制台 DDB 仪表板更新表中的项目。但是当我进入“编辑项目”并单击“保存”时,我不断收到 ConditionalCheckFailedException 错误。

我认为这意味着现有项目有一个 ConditionExpression,我的新数据在某种程度上违反了该条件表达式。但我不知道如何从仪表板查看该表达式,以便确定问题所在。

如何从 AWS 控制台 DDB 仪表板查看表中项目的 ConditionExpression?

小智 5

我遇到了同样的问题,在 AWS 支持的帮助下解决了。

出现此问题的原因是“项目”选项卡的 DynamoDB 控制台是静态显示,它会在首次显示时拍摄所有项目的快照。如果您选择一个项目然后返回到屏幕,您仍然会看到相同的快照 - 它不会更新。

当您尝试更新某个项目时,控制台会发送该项目的快照中所有现有字段的值,如果这些字段中有任何字段与其在 DynamoDB 中的当前值不同,则更新将被拒绝。因此,“条件表达式”是指控制台为允许更新而提出的要求。

因此,解决方法是在选择要编辑的项目之前对项目列表执行浏览器窗口刷新,然后希望您能够足够快地完成编辑,然后再对表进行任何外部更新更改数据。当然,如果您的桌子变化很快,那么您将无法足够快,因此控制台不是适合这项工作的工具。