【问题标题】:How to create a serverless websocket client on AWS如何在 AWS 上创建无服务器 websocket 客户端
【发布时间】:2022-01-18 13:03:26
【问题描述】:
使用 AWS,我希望我的后端监听来自外部服务器(我无法控制)的 websocket 连接。这个 websocket 连接发出市场数据。
每次外部服务器将数据推送到 websocket 时,我都不想触发 Lambda 函数。需要明确的是:在这种情况下,AWS 充当客户端。
是否可以通过无服务器方式(不使用 EC2)实现此功能?
我查看了 AWS IoT pub/sub 和 API Gateway/w WS,但这些服务不充当客户端(不过我可能错了)
【问题讨论】:
标签:
amazon-web-services
websocket
aws-lambda
aws-iot
【解决方案1】:
我认为我们在这里失去了无服务器模型的好处,因为我们需要由 WS 客户端打开的永久 tcp 连接。总的来说,EC2 看起来很不错。
如果我们知道需要侦听市场数据的时间段,那么其中一种选择可能是通过 CloudWatch 事件触发 Fargate 实例,侦听消息一段时间,然后关闭连接和 Fargate 实例。 EC2 的定价/收益将取决于我们需要侦听传入数据的时间范围。
【解决方案2】:
目前,似乎没有 AWS 产品提供传出 websocket 连接。
这是不久前的a question,要求提供相同的功能。
所有关于 websocket 的 API 网关(和其他相关服务)文档仅描述传入(服务器)连接。
实际上,您更好的选择是在 EC2 实例上托管您自己的 websocket 客户端应用程序。