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

Dan*_*tos 1 amazon-web-services amazon-dynamodb

我希望在 DynamoDB 表更改时收到通知,与 Google Firebase 实时数据库的方式相同。

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

小智 7

DynamoDB 和 Firebase/Firestore 确实不同。

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

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

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

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

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

但最终您将使用 DynamoDB Streams 和 SNS 以及 Firebase/Firestore 或“AWS AppSync”提供的开箱即用的 Lambda 进行构建。


Quỳ*_*yễn 7

DynamoDB 没有用于更新表的实时通知/触发器。

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

以下是一些示例用例:

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

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

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

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

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

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

以下是如何将DynamoDB Streams 与 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
});
Run Code Online (Sandbox Code Playgroud)

我们有一些 DynamoDB Streams 支持的事件

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

INSERT - 表中添加了一个新项目。

MODIFY - 修改了一项或多项现有项目的属性。

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

顺便说一句,如果您想通过另一种方式而不是 DynamoDB Streams 通知您的客户,您可以尝试使用 Lambda 函数,请按照本文进行操作

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