【问题标题】:Get AWS IoT MQTT data on my EC2 instance在我的 EC2 实例上获取 AWS IoT MQTT 数据
【发布时间】:2018-10-25 22:55:55
【问题描述】:

我已经尝试了解 AWS IoT 数周了,但我一直遇到无法将我的 mqtt 数据转发到任何地方的问题。我有一个运行 nodejs 的 EC2 服务器和一个运行 nodejs 和 python 的 raspberrpi。

Pi CAN 成功发布主题和信息(可以在 mqtt 测试面板上阅读),但我不确定从这里到哪里来引导流量。该设备是正确注册的“东西”。

长话短说,我已经知道如何发送和接收 AWS IoT MQTT 消息,但我不知道如何让我的 ec2 el 服务器与它们交互。

任何方向都将不胜感激。

【问题讨论】:

    标签: amazon-web-services mqtt


    【解决方案1】:

    你几乎在那里。我认为您只是误解了 AWS IoT 的工作原理。

    它使用pub/sub 模式为您处理所有路由。基本上,您在服务器或任何其他设备上需要做的就是“订阅”一个主题以接收消息。当某物向 AWS IoT 中的某个主题发布消息时,它会自动将其发送给所有打开的“订阅者”。

    消息在平台上不是持久的,这意味着消息基本上会丢失,除非有订阅者在监听它们。所以不要指望订阅者在它上线之前收到发送的消息。

    您可以使用他们的任何 SDK(即他们的 python sdk)来发布和订阅主题。

    【讨论】:

    • 这正是我正在寻找的答案类型。我已经使用 python 来处理我的大部分发送,以 js/php(我可以做任何一种)格式订阅和打印信息的最佳方式是什么?我将如何从 awsiot 验证和订阅特定主题?再次感谢您的帮助!
    • 检查存储库中的示例。消息的数据格式实际上是 JSON,因此 python 可以轻松解析它(我相信 JS sdk 可以),您也可以将数据转储为 JSON。不确定您所说的验证是什么意思。
    • 我本可以使用更精确的语言,找到了一个简单的指南来说明如何验证我的请求(通过证书等)。我真正想问的是如何在网页上订阅和打印这些消息,并将消息有效地发布给发件人。我发现了一些关于将 mqtt 数据推送到 dynamodb 的好方法,但我想知道是否有更直接的订阅函数可以在 js/php 中使用。这篇文章(http websockets)是一个好的起点吗? docs.aws.amazon.com/iot/latest/developerguide/protocols.html
    • 我相信是的,我个人还没有尝试过用 websockets 来做这件事,但我相信它不会太糟糕。需要注意的是,我相信您需要一个 IAM 凭证才能使用 websocket,而不是物联网中“事物”的身份文件(至少 python sdk 就是这种情况)。
    【解决方案2】:

    您有多种方法来管理传入的消息以供以后使用。对于 AWS IoT 数据流,您通常总是希望使用 DynamoDB 和 S3,因为它们非常便宜,通常是免费的。您可以在 AWS IoT 中创建一个操作,以直接将数据对象从 AWS IoT 放入 Dynamo 表中,或者使用 Kinesis firehose 或 Lambda 函数将它们转储到存储桶中。不要尝试在 AWS IoT Core 上使用 direct to s3 premade 功能,因为它不会将传入的对象连接到同一个文件夹中。

    现在,一旦您在 S3 中拥有数据库和可怜的数据湖,您只需请求 S3 URL 或引入 Dynamo 数据表即可轻松地从 EC2 实例中提取数据。此外,我不建议管理您自己的 Node.js 后端。只需使用 Dynamo,它更便宜、更容易上手。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多