3

假设我们有一个带有传感器的设备(例如,一堆天气传感器,如风/空气/嗡嗡声/温度),这个设备需要向 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 Shadows 服务非常方便计算增量与“期望”状态。但就我而言,诀窍是气象站的常规“指标”(如温度或湿度),我没有“想要的”状态。我不会在设备上设置温度,只会读取,因此不需要计算增量。

4

1 回答 1

2

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

底线,你可以去任何一种方式。目前尚不清楚一个人是否比另一个人具有明显的优势。正如您所提到的,使用自定义主题,不需要计算影子主题的增量和其他开销,因此这可以减少延迟,但除非您有大量传感器并且不断发布值,否则这不应该是问题,我想。

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

如果某个 AWS 架构师能够参与进来,那就太好了。

于 2016-06-02T02:35:12.223 回答