我正在尝试更新一个项目,需要对该项目的150个属性进行编辑,并且得到Invalid UpdateExpression: Expression size has exceeded the maximum allowed size
。我认为这是因为我的UpdateExpression
字符串很长。 AWS docs say that the maximum length of an expression parameters is 4kb。
如何解决这个错误?我想我可以将请求分解为多个,但这看起来很脏。
这里还有其他有关Item
大小限制的问题,但我还没有发现有关UpdateExpression
大小限制的任何信息。
我最终将请求限制为50个属性更新,并且与transactWrite
和ConsistentRead
一起解决了我的问题。
答案 0 :(得分:1)
我没有对DynamoDB进行非常长时间的更新查询,但是对我来说,超过50个更新,我会将其拆分为2个更新请求!
答案 1 :(得分:1)
您确实已经达到了expression parameters的限制。
从技术上讲,如果您构造另一个PutItem请求来替换以前的项目,则可以解决此问题。
通过执行任何写操作(包括更新),您将需要等待结果传播到DynamoDB表使用的节点(由于最终的一致性),或者在尝试执行GetItem,Query或时使用强一致性读取。写入后必须立即返回此项目的扫描请求。