it-swarm.com.ru

Можно ли подписаться на WebSocket без сервера, используя AWS?

Веб-сайт предлагает веб-сокет для получения данных в режиме реального времени. Я пытаюсь записать данные, полученные из веб-сокета, в таблицу DynamoDB для источника данных для безсерверного приложения. Их пример использования websocket - это некоторый код Node.JS с использованием socket.io-client. Будучи JavaScript, я подумал использовать функцию AWS Lambda, но они не предназначены для постоянной работы. Существует ли сервис AWS для обработки подписки такого рода? Я не хочу делать небольшой экземпляр EC2 для запуска крошечного приложения только для этой цели.

Вещи, на которые я смотрел:

  • Лямбда-функции - только для короткого выполнения, а не для длительных задач.
  • Подписки на SNS. Из того, что я понимаю, необходимо подписаться на издателя SNS.
  • Kinesis Stream - требует, чтобы производитель использовал Streams PUT API.

Любая помощь будет принята с благодарностью!

5
Braydon

Вы не можете использовать Lambda напрямую, чтобы поддерживать соединение Websocket, так как Lambda и API Gateway не имеют состояния. Есть два сервиса в AWS, которые вы можете использовать для достижения этой цели,

  • AWS IOT Websockets : - Идея заключается в том, что клиенты будут подписываться на темы IOT, а из Lambda - отправлять сообщения клиенту.

 enter image description here

  • AWS AppSync (Недавно представленный): - Наличие слоя между Lambda и DynamoDB, который обеспечит поддержку WebSocket.

Примечание: вам может потребоваться запросить предварительный просмотр AppSync в данный момент. 

11
Ashan

Теперь для этого используется плагин без сервера.

0
caiiiycuk