【问题标题】:How to ingest streaming websocket data into AWS?如何将流式 websocket 数据提取到 AWS 中?
【发布时间】:2023-02-04 17:34:35
【问题描述】:

我的目标是连接到各种 websockets(或多或少 30 个)并以最便宜和最有效的方式将原始数据保存到 S3 中。

我知道有 Kinesis 可以捕获和处理流式数据。

我缺少的是 Kinesis 之前的内容,因为我需要一个运行的程序来侦听 WS 连接并将数据转发到 Kinesis。

我尝试在 Fargate 上使用 EC2 实例和容器来运行 websocket 连接,这两个选项都有效。

我想知道是否有另一种方法(推荐方法)可以做到这一点。

【问题讨论】:

    标签: amazon-web-services amazon-s3 websocket amazon-ecs amazon-kinesis


    【解决方案1】:

    为此,您可以使用 AWS Lambda。它是一种无服务器计算服务,允许您在不配置或管理服务器的情况下运行代码,使其成为运行小型和不频繁任务(例如从 websockets 收集数据)的理想解决方案。

    要使用 Lambda,您需要编写一个函数来侦听 websocket 连接、捕获数据并将其转发给 Kinesis。您可以在建立新的 websocket 连接时触发 Lambda 函数,并同时运行该函数以处理多个 websocket 连接。

    要将原始数据保存到 S3,您可以配置 Kinesis 以将数据流式传输到 S3 存储桶。或者,您可以编写一个单独的 Lambda 函数,从 Kinesis 读取数据并将其写入 S3。

    使用 Lambda 和 Kinesis 是一种经济高效且可扩展的解决方案,因为您只需为消耗的计算时间付费,而 Kinesis 会自动扩展以处理传入数据量。

    【讨论】:

    • 谢谢你!但这并没有真正回答我的问题,lambda 的最大运行长度是 15 分钟。我需要打开一个连续(永远)的 websocket 连接。
    猜你喜欢
    • 2021-07-26
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多