【问题标题】:Suggestion on handling realtime data in AWS在 AWS 中处理实时数据的建议
【发布时间】:2018-07-26 23:10:58
【问题描述】:

我正在开发一个实时提供数据快照的应用程序。 数据当前存储在 DynamoDB 中。数据的当前状态应该显示在一个简单的 html 页面上。 到目前为止,我探索的选项之一是 DynamoDB - Lambda - APIGateway。最具挑战性的部分是更新DynamoTable(中的预期数据)时的数据推送

不确定 appsync 或 IoT 是否有帮助。

任何关于如何实现这一点的建议将不胜感激。

【问题讨论】:

    标签: aws-lambda amazon-dynamodb aws-api-gateway aws-iot aws-appsync


    【解决方案1】:

    DynamoDB Streams 可以帮助您实现目标。

    其中一个使用方法是:

    一个流行的移动应用程序以每秒数千次更新的速度修改 DynamoDB 表中的数据。另一个应用程序捕获并存储有关这些更新的数据,为移动应用程序提供近乎实时的使用指标。

    在下一篇文章中查看更多信息 - Capturing Table Activity with DynamoDB Streams

    更新: API 网关并非旨在将数据流式传输到客户端。您可以通过每 5-10 秒调用一次 API Gateway 来模拟它。但它看起来并不是最好的解决方案。

    我建议调查Amazon Kinesis。可以从 Lambda 触发 Kinesis 并实现 Kinesis Consumer 以读取 Kinesis 流。您可以在下一篇文章中查看更多详细信息 - Developing Amazon Kinesis Data Streams Consumers Using the Kinesis Client Library

    另一方面,您可以尝试在没有 Lambda 的情况下实现此功能。我还没有看到一个很好的例子,但这篇文章描述了类似的东西 - Processing Amazon DynamoDB Streams Using the Amazon Kinesis Client Library

    【讨论】:

    • 谢谢@RredCat。我已经在我的 Dynamo 表上启用了流。这是否意味着如果数据通过API网关显示在html页面上,html页面会随着数据的变化而自动更新——浏览器如何知道数据的变化。另外 - API Gateway 目前不支持 websockets。请提出建议。
    • 您可以使用 Ajax 每隔一段时间调用您的 API,此 API 将检查 dynamodb 中的更新并在可用时显示新信息
    【解决方案2】:

    您可能会发现 AppSync 对您的用例很有帮助。它具有您可以配置的数据源,其中一种类型是 Dynamo。此外,还有订阅的概念,当订阅的数据更新时,它会向订阅的设备发送更新,这听起来像是您的目标。

    DynamoDB 数据源:https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-dynamodb-resolvers.html

    订阅:https://docs.aws.amazon.com/appsync/latest/devguide/real-time-data.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 2021-09-08
      • 1970-01-01
      相关资源
      最近更新 更多