Как получить уведомление при обновлении записи в базе данных AWS Dynamo? - PullRequest
0 голосов
/ 19 декабря 2018

Я хотел бы получать уведомления при изменении таблицы DynamoDB, так же, как в Google Firebase Realtime Database.

Я использую эту службу в приложении javascript внешнего интерфейса.

Ответы [ 3 ]

0 голосов
/ 19 декабря 2018

DynamoDB не имеет уведомления / триггера в реальном времени для обновления таблицы.

Но в этом случае вы можете попытаться использовать потоки DynamoDB для захвата активности таблицы.

Вотнекоторые примеры использования:

Приложение в одном регионе 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
});

У нас есть некоторые события, поддерживаемые DynamoDB Streams

eventName - (String) Тип данныхмодификация, выполненная для таблицы DynamoDB:

INSERT - в таблицу был добавлен новый элемент.

MODIFY - один или несколько атрибутов существующего элемента были изменены.

REMOVE - элемент был удален из таблицы.

Кстати, если вы хотите уведомить своего клиента другим способом вместо DynamoDB Streams, вы можете попробовать использовать LambdaСледуйте этой статье .

Надеюсь, это поможет вам решить вашу проблему.

0 голосов
/ 19 декабря 2018

Обычно я вижу шаблон темы DynamoDB -> SNS -> (с пользовательской лямбдой).

Если ваше приложение для мобильных устройств, вы взглянули на AWS SNS Mobile Push ивидно, что она не будет лучше подходить для вашей архитектуры.

0 голосов
/ 19 декабря 2018

DynamoDB и Firebase / Firestore действительно отличаются.

Firebase / Firestore - это база данных в реальном времени, где вы сканируете подписку на изменения на клиенте.DynamoDB - это база данных NoSQL для хранения пар ключ / значение.

Более подходящим для аналогичного случая использования является «AWS AppSync», который предоставляет живые обновления, как это делает Firebase / Firestore.

Если вы хотитетем не менее, используйте DynamoDB, посмотрите на потоки DynamoDB, чтобы вызвать событие при обновлении таблицы.

В таком случае возникает вопрос, как получить обновление для клиента.

Вы можете отправить сообщениев тему SNS, отправляя push-уведомления клиенту, если это необходимо.

Но в итоге вы создадите с помощью DynamoDB Streams и SNS и, возможно, Lambda, что Firebase / Firestore или «AWS AppSync» предоставляет «из коробки».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...