[英]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.