Как я могу добавить подписку в Appsyn c, которая вызывается лямбдой? - PullRequest
1 голос
/ 01 марта 2020

Я знаю, что подписка в Appsyn c работает с мутацией, что означает, что всякий раз, когда вызывается мутация, также вызывается подписка, которая отправляет сообщение всем подписчикам.

Что я хочу, так это то, что, если есть какой-либо способ, я могу в принципе отправить сообщение пользователю напрямую из lambda с помощью Appsyn c или любым другим способом в режиме реального времени? То есть я не хочу, чтобы пользователь обновил страницу sh.

Вариант использования может быть, скажем, у меня есть отдельная лямбда, которая работает каждый час и хочет каждый час уведомлять пользователей о чем-то. Это не часть какой-либо мутации или запроса.

1 Ответ

0 голосов
/ 02 марта 2020

Вы можете присоединить None DataSource к мутации и отправить информацию, необходимую для запуска подписки, в аргументах мутации.

Например, предположим, у вас есть следующая схема

type Book {
 bookId: Int
}

input BookInput {
 bookId: Int
}

type mutation {
 triggerBookUpdate(input: BookInput!): Book
}

type subscription {
 onBookUpdate(bookId: Int!): Book
    @aws_subscribe(mutations: ["triggerBookUpdate"])
}

, затем вы присоединяете None DataSource к преобразователю для поля TriggerBookUpdate и предоставляете следующий шаблон сопоставления запросов

#**
Resolvers with None data sources can locally publish events that fire
subscriptions or otherwise transform data without hitting a backend data source.
The value of 'payload' is forwarded to $ctx.result in the response mapping template.
*#
{
    "version": "2017-02-28",
    "payload": $utils.toJson($context.arguments.input)
}

и шаблон сопоставления ответов

$util.toJson($ctx.result)

для получения дополнительной информации. Документация

...