我正在尝试创建一个智能系统来使用 AWS IoT Core 管理我的设备,在实践中设置封闭系统是有效的,我的主题的伪代码当前策略设置本质上是:
topic:{GroupA}/*
当我希望更改设备的状态时,我只需连接到 IoT 代理并发布到
{GroupA}/{Device1}
。
但是我现在正在尝试扩展此逻辑以考虑多个组和多个设备。
例如,有多个组,例如 GroupA、GroupB 和多个设备 Device1 和 Device2,
GroupA 中的用户无法访问 GroupB 的主题,反之亦然...但是我希望设备(例如 Device1)能够同时属于两个组主题并在两个组主题中同步其状态。例如,GroupA 中的用户对 Device1 进行状态更改,然后执行主题
{GroupA}/{Device1}
的 pub,现在我希望 GroupB 中的用户从其子主题 {GroupB}/{Device1}
中查看更新后的状态
我可以收集到同步这些的唯一真正的解决方案是本质上存储设备所属的已知主题,并且当用户向设备发出状态更改时,在设备所属的所有主题中发布新状态
我在该方法中看到的明显问题是延迟(因为该逻辑可能会在 lambda 中处理),并且如果出现故障并且函数推送到一个主题而不是另一个主题,也会出现潜在问题
有没有更好的方法来实现我想要的功能?
您可以在事物组上使用物联网策略。您可以拥有静态或动态组并将物联网事物放入其中。根据物联网组策略,他们将能够发布到正确的主题。