我有一个应用程序,需要每5秒从AWS dynamodb表中读取数据。 目前,我使用lambda来获取数据,然后将数据从dynamodb获取回用户。
每5秒查询一次表的问题在于,它可能会对性能产生影响,并且还存在定价问题。 (在大多数情况下,数据甚至可能根本不会更改,但是当更改时,我想立即得到通知。)
一个重要的澄清是我的应用程序位于AWS的外部,并且仅访问AWS dynamodb来获取数据(使用使用c#构建的简单http请求)。
将新数据插入dynamodb时,有什么方法可以向我的应用程序发送通知?
答案 0 :(得分:1)
DynamoDB中的数据更新可以触发DynamoDB流,从而可以触发AWS Lambda函数。
Lambda函数可以通过某种方式通知您的应用程序。
答案 1 :(得分:1)
只需在@ john-rotenstein答案的顶部添加一些内容:
一旦正确配置了Lambda函数以由DynamoDB流中的事件触发,则可以让Lambda函数通过HTTP请求通知Web应用程序。
另一种选择是使用Lambda将此通知放入您可能在AWS外部使用的队列中,然后让C#代码成为该队列的使用者。有多种方法可以通知您的应用程序,您只需要查看哪种方案对您当前的方案是最佳/最具成本效益的。
答案 2 :(得分:0)
就工程而言,流是正确的答案,但仅说您对轮询选项昂贵的担心是没有根据的。因此,如果您有可行的解决方案,我很想离开它。
如果您每5秒查询一张桌子,每2个月要花费$ 0.25。
这假设您的表具有按需定价,并且查询返回的数据少于4KB。