代码之家  ›  专栏  ›  技术社区  ›  Daniel Santos

如何在更新aws dynamo db条目时得到通知?

  •  0
  • Daniel Santos  · 技术社区  · 6 年前

    当dynamodb表发生变化时,我希望得到通知,就像google firebase实时数据库一样。

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

    3 回复  |  直到 6 年前
        1
  •  4
  •   Quynh Nguyen    6 年前

    dynamodb没有表更新的实时通知/触发器。

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

    下面是一些用例示例:

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

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

    全球多玩家游戏具有多主拓扑结构,存储数据 在多个AWS区域。通过使用和 正在重放在远程区域中发生的更改。

    应用程序自动向移动设备发送通知 当一个朋友上传一张新照片时,所有的朋友中就有一个。

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

    更多细节 DynamoDB Streams 文件。

    下面是如何整合 DynamoDB Streams with 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(string)执行的数据修改类型 在dynamodb表上:

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

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

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

    顺便说一下,如果您想通过另一种方式而不是dynamodb流通知您的客户机,可以尝试使用lambda函数follow this article 是的。

    希望这能帮助你解决问题。

        2
  •  4
  •   DominikHelps    6 年前

    dynamodb和firebase/firestore真的不一样。

    firebase/firestore是一个实时数据库,您可以在其中扫描订阅客户端上的更改。 dynamodb是一个存储键/值对的nosql数据库。

    更适合类似的用例是“aws appsync”,它提供了像firebase/firestore那样的实时更新。

    如果您仍然想使用dynamodb,请查看dynamodb流以在更新表时触发事件。

    接下来的问题是如何向客户机获取更新。

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

    但最终你会用dynamodb流和sns,也许还有lambda来构建firebase/firestore或“aws appsync”提供的开箱即用的功能。

        3
  •  -1
  •   David Webster    6 年前

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

    如果你的应用是移动的,你有没有看一下 AWS SNS Mobile Push 看看它是否更适合你的架构。