AWS实时数据获取

时间:2019-02-21 11:04:18

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

我有一个应用程序,需要每5秒从AWS dynamodb表中读取数据。 目前,我使用lambda来获取数据,然后将数据从dynamodb获取回用户。

每5秒查询一次表的问题在于,它可能会对性能产生影响,并且还存在定价问题。 (在大多数情况下,数据甚至可能根本不会更改,但是当更改时,我想立即得到通知。)

一个重要的澄清是我的应用程序位于AWS的外部,并且仅访问AWS dynamodb来获取数据(使用使用c#构建的简单http请求)。

将新数据插入dynamodb时,有什么方法可以向我的应用程序发送通知?

3 个答案:

答案 0 :(得分:1)

DynamoDB中的数据更新可以触发DynamoDB流,从而可以触发AWS Lambda函数。

Lambda函数可以通过某种方式通知您的应用程序。

请参阅:DynamoDB Streams and AWS Lambda Triggers

答案 1 :(得分:1)

只需在@ john-rotenstein答案的顶部添加一些内容:

一旦正确配置了Lambda函数以由DynamoDB流中的事件触发,则可以让Lambda函数通过HTTP请求通知Web应用程序。

另一种选择是使用Lambda将此通知放入您可能在AWS外部使用的队列中,然后让C#代码成为该队列的使用者。有多种方法可以通知您的应用程序,您只需要查看哪种方案对您当前的方案是最佳/最具成本效益的。

答案 2 :(得分:0)

就工程而言,流是正确的答案,但仅说您对轮询选项昂贵的担心是没有根据的。因此,如果您有可行的解决方案,我很想离开它。

如果您每5秒查询一张桌子,每2个月要花费$ 0.25。

这假设您的表具有按需定价,并且查询返回的数据少于4KB。

https://aws.amazon.com/dynamodb/pricing/on-demand/