对于Microsoft Azure门户中的TwinChangeEvents,我created a route,当设备双胞胎发生变化时我可以Receive device-to-cloud messages。但该消息仅包含新设备的双值。我需要旧的分析值,以便我不必分析整个设备。
有什么方法可以获得旧价值吗?
答案 0 :(得分:2)
首先,我想指出,每次用于更新设备双胞胎状态的服务时,Azure IoT Hub中双胞胎所需更改通知和 TwinChangeEvents 的实现都会生成一个事件如果设备双胞胎状态保持不变(没有变化),则调用并不重要。此行为的结果是同一设备双态的新版本号。
以下屏幕截图显示了这种情况:
如您所见,上述双胞胎状态相同(无变化),但对于每个呼叫(步骤1),我们都有一个新的版本号。
看起来这是一个错误,当双胞胎改变的通知在这种情况下起作用时,双胞胎状态没有改变。 换句话说,这种通知仅在设备状态已更改时才有效。 解决这个" bug"将简化设备中的逻辑和Azure IoT Hub路径后面的逻辑。
好吧,现在以下是我对你的问题的答案,如何让旧设备成为双胞胎状态。
请注意,Azure IoT Hub目前尚未实现此功能,但是向Azure IoT基础架构添加少量组件可以解决此问题。
选项1: - 创建 TwinChangeEvents Stream Pipeline ,请参见下图:
ASA作业可以根据业务模型要求在热路径或冷路径中运行。请注意,此选项需要为Capture和ASA Job实体支付额外费用(约120美元/月)。
选项2: - 创建 TwinChangeEvents存储库(存储),请参见下图:
Azure功能由双变更事件触发,负责将它们映射到Azure表存储的行对象。之后,可以根据值,版本,时间戳等从表中查询特定的双胞胎状态。