0

Eine Website bietet einen Websocket, um Echtzeitdaten zu erhalten. Ich versuche, Daten aus dem Websocket in einer DynamoDB-Tabelle für eine Datenquelle für eine serverlose Anwendung zu erfassen. Ihr Beispiel für die Verwendung des Websockets ist ein Node.JS-Code, der socket.io-client verwendet. Als JavaScript dachte ich, eine AWS Lambda-Funktion zu verwenden, aber sie sind nicht dafür vorgesehen, ständig ausgeführt zu werden. Gibt es einen AWS-Service für diese Art von Abonnement? Ich möchte keine kleine EC2-Instanz erstellen, um nur für diesen Zweck eine kleine Anwendung auszuführen.Ist es möglich, einen WebSocket serverlos mit AWS zu abonnieren?

Dinge, die ich habe betrachtet:

  • Lambda-Funktionen - nur für kurze Ausführungen nicht lange laufenden Tasks.
  • SNS-Abonnements - Soweit ich weiß, muss dies einen SNS-Publisher abonnieren.
  • Kinesis Stream - Erfordert die Verwendung von Streams PUT API durch den Produzenten.

Jede Hilfe würde sehr geschätzt werden!

+0

Es scheint, als ob das ganze Konzept von serverless einem lang laufenden, statusbehafteten Serverprozess entgegensteht, der webSocket-Verbindungen zu Clients aufrechterhält. – jfriend00

+0

Danke für die Antwort. Ich suche nach einem Dienst, der der Kunde ist, der die neuen Daten empfängt, die aus dem Websocket hinausgeschoben werden. Das scheint vernünftig zu sein, wenn man es in einem Serverless Framework implementieren möchte. – Braydon

Antwort

2

Sie können Lambda nicht direkt verwenden, um eine Websocket-Verbindung aufrechtzuerhalten, da Lambda und API Gateway statusfrei ist. Es zwei Dienste in AWS Sie verwenden können, um dies zu erreichen,

  • AWS IOT Websockets: - Die Idee ist es, Kunden zu IOT Themen abonniert haben, und von Lambda wird es Nachrichten an Client drücken.

enter image description here

  • AWS AppSync (neu eingeführten): - eine Schicht zwischen Lambda und DynamoDB, die WebSocket-Unterstützung bieten.

Hinweis: Möglicherweise müssen Sie im Moment eine Vorschau von AppSync anfordern.

Verwandte Themen