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 进行构建。
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 函数,请按照本文进行操作。
希望这可以帮助您解决您的问题。
| 归档时间: |
|
| 查看次数: |
3713 次 |
| 最近记录: |