如何找出消耗我的DynamoDb表读取容量的内容?

时间:2017-11-16 22:10:33

标签: amazon-web-services amazon-dynamodb aws-lambda access-control

我们有一个DynamoDB表,我们认为我们可以关闭和删除它。我们将调用者关闭到查询它的Web服务(并且可以在Web服务器上查看调用者已降至零的指标),但AWS控制台仍然显示读取容量消耗大于零。 A graph showing Read Capacity Consumed series > 0

但是,与读取有关的每个其他图表都没有显示数据:获取延迟,放置延迟,查询延迟,扫描延迟,获取记录,扫描返回项目计数和查询返回项目计数均为空白。在我知道正在使用的其他表格中,这些图表显示了一些数据> 0

在我知道的其他表格中,“读取容量”图表仅显示已配置的行,没有消耗的行。

此表仍然通过Lambda过滤和聚合来自Kinesis流的事件来编写。我已经回顾了Lambda代码,并没有专门从表中读取任何内容 - 当lambda更新或覆盖现有密钥的值时,是否会消耗读取容量?

1 个答案:

答案 0 :(得分:2)

我使用AWS支持打开了一张票,他们能够找到消耗读取容量的IP。他们使用内部工具查询客户无法使用的日志。他们还确认,这些事件不会发送到Cloudtrail日志,Cloudtrail日志仅包含与表相关的事件,例如重新供应,有关指标的查询等。

他们也分享了与这个问题相关的这个小块:

  

问:当lambda更新或覆盖现有密钥的值时,是否会消耗读取容量?

     

答:是的,当您发出更新项操作时,Dynamodb首先执行读取/获取操作,然后执行PutItem以插入/覆盖现有项目。这是昂贵的,因为它消耗RCU和WCU。我还确认在此表上没有进行UpdateItem操作。

他们还向我指出了更多的Cloudwatch指标,这些指标更多地说明了幕后工作的内容。通过链接导航找到这个,你去

  • Cloudwatch 服务
  • 左栏中的
  • 指标
  • 所有指标标签
  • 向下滚动到 AWS命名空间部分(如果您已定义任何自定义指标,则自定义命名空间部分位于顶部)
  • 选择 DynamoDB
  • 选择表格操作指标
    度量标准将按表名组织。最有帮助的是Operation = Query,Metric Name = Return Item Count。

所以我的问题的唯一答案是:打开AWS Support票证。