簡體   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