我已经在使用 IoT 中心并配置了消息路由来路由TwinChangeEvents
到事件中心。一个 Azure 函数EventHubTrigger
处理消息。这工作得很好。
现在,我想配置消息路由来路由DeviceLifecycleEvents
到另一个事件中心。同样,另一个 Azure 函数具有EventHubTrigger
应该处理消息。
但是,当我连接或断开设备时,该功能不会触发。
当我将消息路由的数据源更改为TwinChangeEvents
,该函数按预期触发(当然有错误的消息)。也就是说,我非常有信心我的事件中心和函数的配置是正确的。
另外,我尝试在 IoT 中心中配置事件订阅,以将生命周期事件发送到事件中心。我认为此选项使用事件网格。无论如何,此配置会按预期触发该函数。仅当对生命周期事件使用消息路由时才会出现此问题。
谁能指出我为什么消息路由不起作用的解决方案?我是否缺少 IoT 中心中的配置?
不幸的是,事件中心不支持设备连接和断开连接事件。 Microsoft 支持人员也证实了这一点。以下是我从他们那里得到的答复:-
IoT 设备生命周期事件仅为设备创建和删除事件而设计。根据描述,您希望 IoT 中心触发事件中心的以下事件: 设备已创建 设备已删除 设备已连接 设备已断开 根据此要求,您应该使用事件网格创建新的事件订阅,而不是使用设备生命周期事件配置 IoThub 消息路由:数据源。请前往IoT Hub,通过以下路径创建新的事件订阅:IoT Hub->事件->+事件订阅
最终,我为所有设备生命周期事件创建了一个事件订阅,并将它们路由到我的自定义事件中心端点。我认为如果您只想订阅事件中心而不订阅事件网格,您也可以这样做。
编辑:- 消息路由现在支持Device connection state events
. 非遥测事件由事件中心消息路由支持。
最后,如果创建的路由的数据源设置为设备
连接状态事件,IoT 中心发送一条消息指示是否
设备已连接或断开。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)