我一直试图弄清楚AWS IoT数周,而且我一直遇到无法在任何地方转发我的mqtt数据的问题。我有一个运行nodejs的EC2服务器,以及一个运行nodejs&的raspberrpi。蟒蛇。
Pi可以成功发布主题和信息(可以在mqtt测试面板上阅读),但我不确定从哪里开始指导流量。该设备是正确注册的“东西”。
长话短说,我已经弄清楚如何发送和接收AWS IoT MQTT消息,但我不知道如何让我的ec2 el服务器与它们进行交互。
任何方向都会受到高度赞赏。
答案 0 :(得分:0)
你几乎就在那里。我认为您只是误解了AWS IoT的工作原理。
它使用pub/sub模式为您处理所有路由。基本上你需要在你的服务器或任何其他设备上做的就是"订阅"到一个主题,以便接收消息。当某些内容向AWS IoT中的主题发布消息时,它会自动将其发送给所有开放的订阅者。"
消息在平台上不是持久的,这意味着消息基本上会丢失,除非有订阅者在监听它们。因此,不要期望订阅者接收在其上线之前发送的消息。
您可以使用他们的任何SDK(即他们的python sdk)来发布和订阅主题。
答案 1 :(得分:0)
您有几种方法来管理传入消息以供以后使用。对于AWS IoT数据流,通常总是要使用DynamoDB和S3,因为它们非常便宜,通常免费。您可以在AWS IoT中创建一个操作,以将数据对象直接从AWS IoT放置到Dynamo表中,或使用Kinesis firehose或Lambda函数将其转储到Bucket中。不要尝试在AWS IoT核心上使用Direct to s3预制函数,因为它不会将传入对象连接到同一文件夹中。
现在,一旦在S3中拥有数据库和穷人数据湖,您就可以轻松地从EC2实例中提取数据,只需请求S3 URL或引入Dynamo Data表即可。另外,我不建议您管理自己的Node.js后端。只需使用Dynamo,它更便宜且更容易启动。