繁体   English   中英

如何更新AWS Dynamo数据库条目时得到通知?

[英]How to get notified when a AWS Dynamo DB entry are updated?

我想在DynamoDB表更改时收到通知,方法与Google Firebase实时数据库相同。

我在前端javascript应用程序中使用了此服务。

DynamoDB和Firebase / Firestore确实不同。

Firebase / Firestore是一个实时数据库,您可以在其中扫描订阅客户端上的更改。 DynamoDB是用于存储键/值对的NoSQL数据库。

更适合类似用例的是“ AWS AppSync”,它提供实时更新,如Firebase / Firestore一样。

但是,如果您想使用DynamoDB,请查看DynamoDB流以在表更新时触发事件。

接下来的问题是如何将更新发送给客户端。

您可以向SNS主题发送消息,并在必要时向客户端发送推送通知。

但是最后,您将使用DynamoDB Streams和SNS以及Lambda构建Firebase / Firestore或“ AWS AppSync”提供的即用型功能。

DynamoDB没有实时通知/触发器来更新表。

但是在这种情况下,您可以尝试使用DynamoDB流来捕获表活动。

以下是一些示例用例:

一个AWS区域中的应用程序会修改DynamoDB表中的数据。 另一个AWS区域中的第二个应用程序读取这些数据修改并将数据写入另一个表,从而创建一个与原始表保持同步的副本。

流行的移动应用程序以每秒数千次更新的速度修改DynamoDB表中的数据。 另一个应用程序捕获并存储有关这些更新的数据,从而为移动应用程序提供近乎实时的使用指标。

全球多人游戏具有多主机拓扑,可将数据存储在多个AWS区域中。 每个主服务器通过使用和重放远程区域中发生的更改来保持同步。

只要一个朋友上传了新图片,应用程序就会自动将通知发送给组中所有朋友的移动设备。

新客户将数据添加到DynamoDB表。 此事件将调用另一个向新客户发送欢迎电子邮件的应用程序。

DynamoDB Streams文档中的更多详细信息。

这是将DynamoDB流与AWS Javascript SDK集成的方法

var dynamodbstreams = new AWS.DynamoDBStreams();
dynamodbstreams.describeStream(params, function (err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

DynamoDB流支持一些事件

eventName —(字符串)在DynamoDB表上执行的数据修改的类型:

插入-新项目已添加到表中。

修改-现有项目的一个或多个属性已修改。

删除-该项目已从表格中删除。

顺便说一句,如果您想通过其他方式而不是DynamoDB Streams通知客户端,则可以尝试使用Lambda函数,请遵循本文

希望这可以帮助您解决问题。

我通常会看到DynamoDB-> SNS主题模式->(带有自定义lambda)。

如果您的应用程序是用于移动设备的,请看一下AWS SNS Mobile Push ,看看它是否更适合您的架构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM