amazon-web-services - DynamoDB 在更新期间返回 `Invalid UpdateExpression: Expression size has exceeded the maximum allowed size`

标签 amazon-web-services amazon-dynamodb

我正在尝试更新一个项目,我需要在该项目上编辑大约 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 个属性更新,以及 transactWriteConsistentRead修复了我的问题。

最佳答案

您确实已达到 expression parameters 的限制.
从技术上讲,如果您构建另一个 PutItem,您可以解决这个问题。将替换之前存在的项目的请求。
通过执行任何写入(包括更新),您将需要等待结果传播到您的 DynamoDB 表使用的节点(因为最终一致性),或者在您尝试执行 GetItem、Query 或 Scan 请求时使用强一致性读取必须在写入后立即返回此项目。

关于amazon-web-services - DynamoDB 在更新期间返回 `Invalid UpdateExpression: Expression size has exceeded the maximum allowed size`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62843968/

相关文章:

amazon-web-services - 在 lambda 中获取 Cognito 验证码以使用本地提供商发送短信

amazon-dynamodb - 对项目进行投票——如何设计数据库/aws-lambda 以最小化 AWS 成本

amazon-dynamodb - dynamodb 对不在列表中的值进行过滤

conditional - 有条件更新的 DynamoDBContext

php - 读取表当前消耗的读取/写入容量单位 DynamoDB

ios - 如何在没有 for 循环的情况下从 DynamoDB 中删除所有数据?

amazon-web-services - 如何从不同的 AWS 账户将现有资源导入 AWS CDK

amazon-web-services - Cloudfront s3 分发中的有序缓存导致访问被拒绝 (403)

amazon-web-services - AWS Cognito API 身份验证流程 SDK

ios - 使用 swift 提取 AWS DynamoDB 中的数据