使用AWS IoT的设备是否应仅发布到其影子中?

时间:2016-03-13 19:16:36

标签: amazon-web-services mqtt iot aws-iot

我们假设我们有一个带传感器的设备(例如一堆天气传感器,如风/空气/嗡嗡声/温度),这个设备需要报告它的状态到AWS IoT。

让我们说每分钟设备都会发布一堆读数作为一个大json:

{
   "temp" : 10,
   "wind:  100,
   "humidity" : 98.3,
   .... 
   ....
   "metric98": 23456,
   "metric99": 56789
}

我可以看到两种方式将这些更新发送到AWS IoT:

  • 将状态发布到AWS IoT影子服务主题$aws/things/super-weather-001/update
  • 将它们发布到任意主题,例如。 mytopic/my-weather-data/super-weather-001 ...

在这两种情况下,我都必须在AWS IoT上创建一个规则,该规则稍后会将这些指标投入DynamoDb或以其他任何方式处理它们。

使用哪个主题($ aws / ...或我的)更好地发布指标?

PS。我知道AWoT Shadows服务非常方便计算增量与#34;期望"州。但在我的情况下,对于常规"指标"从气象站(如温度或湿度),我没有"期望"州。我不打算在设备上设置温度,只读取,因此不需要计算增量。

1 个答案:

答案 0 :(得分:2)

AWS IOT论坛上有类似的查询 - https://forums.aws.amazon.com/thread.jspa?messageID=703199&#703199

最重要的是,你可以选择任何一种方式。在这个时刻,如果一个人拥有明显的优势,那么目前还不是很清楚。使用自定义主题,不需要像你提到的那样计算影子话题的增量和其他开销,这样可以减少延迟,但除非你有大量的传感器且不断发布值,否则这不应该是问题,我想。

有人可能会争辩说传感器值仍然构成设备的“状态”(它不断变化),这些值是“只读”,因此所需的状态没有意义,因此不被客户使用。

如果某个AWS架构师可以权衡它将会很好。