DynamoDB 在更新期间返回“无效更新表达式:表达式大小已超出允许的最大大小”

Luc*_*s D 5 amazon-web-services amazon-dynamodb

我正在尝试更新一个项目,我需要编辑该项目上大约 150 个不同的属性,并且我得到了Invalid UpdateExpression: Expression size has exceeded the maximum allowed size. 我想这是因为我的UpdateExpression绳子很长。AWS文档说表达式参数的最大长度是 4kb

我将如何解决这个错误?我想我可以将请求分解为多个,但这看起来很脏。

这里还有一些关于Item大小限制的其他问题,但我还没有找到有关UpdateExpression限制的任何内容。

解决方案:

我最终将请求限制为 50 个属性更新,并transactWrite解决ConsistentRead了我的问题。

Chr*_*ams 1

您确实已达到表达式参数的限制。

从技术上讲,如果您构造另一个PutItem请求来替换之前存在的项目,则可以解决此问题。

通过执行任何写入(包括更新),您将需要等待结果传播到 DynamoDB 表使用的节点(因为最终一致性),或者在尝试执行 GetItem、Query 或 Scan 请求时使用强一致性读取写入后必须立即返回此项。