Amazon web services 当DynamoDB表增长到一定大小时触发AWS Lambda

Amazon web services 当DynamoDB表增长到一定大小时触发AWS Lambda,amazon-web-services,aws-lambda,amazon-dynamodb,Amazon Web Services,Aws Lambda,Amazon Dynamodb,我感兴趣的是,当我的一个DynamoDB表增长到一定大小时,是否可以调用AWS Lambda。这本书中没有任何内容表明这是可能的,但我觉得很难相信这一点。以前有人处理过类似的事情吗?您必须手动处理 不过,我认为有两种现成的方法可以实现这一点: 1) 您可以创建一个CloudWatch事件,该事件每X分钟运行一次(用您认为业务案例所需的任何内容替换X),以触发Lambda函数。然后,您的函数需要调用并对该值运行检查。一旦它运行,您就可以删除该事件,因为您的表已达到您希望得到通知的大小。这是最简单、

我感兴趣的是,当我的一个DynamoDB表增长到一定大小时,是否可以调用AWS Lambda。这本书中没有任何内容表明这是可能的,但我觉得很难相信这一点。以前有人处理过类似的事情吗?

您必须手动处理

不过,我认为有两种现成的方法可以实现这一点:

1) 您可以创建一个CloudWatch事件,该事件每X分钟运行一次(用您认为业务案例所需的任何内容替换X),以触发Lambda函数。然后,您的函数需要调用并对该值运行检查。一旦它运行,您就可以删除该事件,因为您的表已达到您希望得到通知的大小。这是最简单、最经济的方法,因为大多数时候您的表大小都会低于预定义的限制


2) 您还可以使用DynamoDB流并调用,但这样,您的函数将在表中的每个新事件时被触发。这是一种低成本的方法,在我看来,这是一种过度杀伤力的方法。

这似乎是一种很好的方法,但我不会使用describeTable,因为它会返回,每6小时只更新一次。获取更新计数的唯一方法是使用,如中所述,或者也要记住这两种操作(查询和扫描)都必须遍历整个表,这可能需要付出代价,谢谢您的输入。我没有提到扫描或查询,完全是因为与之相关的成本/性能问题。但是,是的,你是对的,如果OP需要实时数据,我想除了使用扫描之外,没有其他方法了……对我来说,这给整个问题投下了某种反模式的阴影。之所以像
ItemCount
TableSizeBytes
这样的值只是偶尔更新,这是有原因的——DynamoDB是一个分布式系统,每个单独的表都在内部分区并跨不同的硬件复制,因此DynamoDB几乎肯定没有表大小的内部实时“感知”。在大规模分布式系统中维护此类信息意味着大量不必要的开销。