首页 > 解决方案 > AWS DynamoDB 为小于 400KB 的项目设置项目大小限制例外

问题描述

放置项目 API 调用的 AWS DynamoDB 限制为 400KB。我正在放置一个 Python 字典,它的大小是使用sys.getsizeof()方法计算的。即使方法返回值小于 400000 字节,put item 操作也会抛出异常:

An error occurred (ValidationException) when calling the PutItem operation: Item size has exceeded the maximum allowed size'

在计算确切尺寸方面我有什么遗漏吗?

标签: pythonamazon-web-servicesamazon-dynamodbboto3

解决方案


您很可能有一个或多个本地二级索引

索引项使用的空间量是以下各项的总和:

  • 基表主键(分区键和排序键)的字节大小
  • 索引键属性的字节大小
  • 投影属性的字节大小(如果有)
  • 每个索引项 100 字节的开销

以及来自DynamoDB 限制的注释

对于表上的每个本地二级索引,以下内容的总和有 400 KB 的限制:

  • 表中项目数据的大小。
  • 该项目对应的本地二级索引条目的大小,包括其键值和投影属性。

换句话说,您需要填充每个项目的大小,因为 PutItem 需要足够的空间来存储项目和索引数据,并且这两者的总和需要小于 400kb。


推荐阅读