我已经在使用IoT中心,并且已配置消息路由以将TwinChangeEvents
路由到事件中心。带有EventHubTrigger
的Azure函数处理消息。效果很好。
现在,我想配置消息路由以将DeviceLifecycleEvents
路由到另一个事件中心。同样,另一个带有EventHubTrigger
的Azure函数应该处理消息。
但是,当我连接或断开设备时不会触发该功能。
当我将消息路由的数据源更改为TwinChangeEvents
时,该函数将按预期方式触发(当然会有错误的消息)。也就是说,我非常有信心我对事件中心和功能的配置正确。
此外,我还尝试在IoT中心中配置事件订阅,用于事件中心的生命周期事件。我认为此选项使用事件网格。无论如何,此配置将按预期触发。仅在将消息路由用于生命周期事件时,才会发生此问题。
任何人都可以向我指出为什么消息路由不起作用的解决方案吗?我是否在IoT中心缺少配置?
答案 0 :(得分:1)
不幸的是,事件中心不支持设备连接和断开的事件。微软的支持也证实了这一点。以下是我从他们那里得到的答复:-
IoT设备生命周期事件仅设计用于设备创建和删除事件。从描述中,您希望IoT中心触发以下事件到事件中心:设备创建的设备已删除的设备已连接的设备已断开的设备已断开连接根据此要求,您应使用事件网格创建新的事件订阅,而不是将Devicehucycle Events的IoThub消息路由配置为数据源。请转到IoT中心并通过以下路径创建新的事件订阅:IoT Hub->事件-> +事件订阅
最终,我为所有设备生命周期事件创建了一个事件订阅,并将其路由到我的自定义事件中心端点。如果您只想订阅事件中心而不是事件网格,我想您也可以这样做。