使用 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/...或我的)用于发布指标更好吗?

附言。我知道AWoT阴影服务非常方便计算增量与"期望"状态。但就我而言,诀窍是,对于来自气象站的常规"指标"(如温度或湿度),我没有"期望"状态。我不会在设备上设置温度,只会读取,因此无需计算增量。

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

底线,你可以走任何一条路。目前还不清楚一方是否比另一方具有决定性的优势。正如您提到的,使用自定义主题,无需计算阴影主题的增量和其他开销,因此这可以减少延迟,但除非您拥有大量传感器并不断发布值,否则我认为这应该不是问题。

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

如果一些 AWS 架构师可以参与进来,那就太好了。

相关内容

  • 没有找到相关文章

最新更新