Реагировать на данные обновления приложения из DynamoDB Change - PullRequest
0 голосов
/ 09 ноября 2019

Я создаю приложение React с GraphQL, используя AWS AppSync с DynamoDB. Мой вариант использования состоит в том, что у меня есть таблица данных, которая извлекается из таблицы DynamoDB и отображается пользователю с помощью GraphQL. У меня есть несколько полей, которые обновляются пошаговыми функциями, запущенными в AWS. Мне нужно, чтобы эти поля автоматически обновлялись для пользователя, так же как и подписка из GraphQL, но я обнаружил, что подписки привязаны к мутациям, и, следовательно, обновление базы данных из пошаговых функций не будет запускать обновление подписки во внешнем интерфейсе. Чтобы обойти это, я использую следующее:

useEffect(() => {
  setTimeout(getSubmissions, 5 * 1000)
})

Очевидно, что это много перегрузок и, вероятно, потребует ненужных расходов. Я искал лучшее решение и наткнулся на потоки DynamoDB, но потоки DynamoDB не могут мне помочь, если они не могут запустить внешний интерфейс для обновления компонента. Должно быть лучшее решение, чем я придумал.

Спасибо!

1 Ответ

0 голосов
/ 11 ноября 2019

Вы правильно, в AWS AppSync, чтобы инициировать публикацию подписки, вы должны вызвать мутацию GraphQL.

, но я обнаружил, что подписки связаны с мутациями, и поэтому обновление базы данных с помощью пошаговых функций не будет запускать обновление подписки во внешнем интерфейсе.

Если выобновите таблицу DynamoDB напрямую через пошаговые функции или через потоки DynamoDB, тогда AppSync не сможет узнать, какие данные были обновлены. Почему ваша пошаговая функция не использует мутацию AppSync вместо непосредственного обновления таблицы? Таким образом, вы можете связать подписку с мутацией, и ваши заинтересованные клиенты будут получать push-обновления при обновлении данных.

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