Appsync вызывать лямбду после ответа? - PullRequest
0 голосов
/ 06 декабря 2018

Пример проблемы:

Пользователь может размещать свои статьи на нашем сайте.Тем не менее, каждый пользователь может опубликовать только 5 статей, и когда они публикуют свою 5-ю статью, мы хотим отправить им электронное письмо.


Используя только револьверы, возможно ли вовремя вернуть ответ на мутацию, а затем лениво / асинхронно вызвать лямбда-функцию, которая отправляет электронное письмо пользователю?

1 Ответ

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

Да, это должно быть очень возможно.Это немного зависит от того, какой резольвер вы хотите использовать.Если вы использовали источник данных Lambda:

  • Как вы упомянули, Lambda-вызовы могут быть асинхронными , поэтому вы можете выполнить один из них в резольвере Lambda и увидеть минимальные дополнительные издержки.
  • Вы можете использовать источник событий Lambda.Например, в начале этого года Lambda запустила вызовы Lambda на основе событий SQS .Это означает, что ваш Lambda-распознаватель поместит сообщение с некоторым контекстом события в очередь SQS (например, данные учетной записи, адрес электронной почты и т. Д.), И тогда у вас будет Lambda, который прослушивает эту очередь.Он автоматически опрашивает, поэтому немедленно вызывает и анализирует это сообщение, и вы отправляете электронное письмо с него.
  • Существуют дополнительные источники событий Lambda, которые могут оказаться полезными в зависимости от личных предпочтений / потребностей приложения, всекоторые видны в документах .В частности, вы можете найти SNS и / или Kinesis в качестве жизнеспособных вариантов.Концептуально они одинаковы - ваш распознаватель помещает сообщение в какой-либо сервис AWS, и автоматически запускается управляемая событиями лямбда.

Если вы использовали источник данных DynamoDB:

  • Вы можете настроить потоки DynamoDB на своей таблице и подключить управляемую событиями лямбду, которая прослушивает этот поток.

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

...