根据 deviceids 触发 azure 函数

Trigger azure functions based on deviceids

我在 IoT 中心注册了两个设备。说 device1 和 device2。我有两个 azure 函数,比如 azurefunction1 和 azurefunction2。

当使用 device1 将消息发送到 Iot Hub 时,我希望触发 azurefunction1 而不是 azurefunction2。 同样,当使用 device2 将消息发送到 Iot Hub 时,我希望触发 azurefunction2 而不是 azurefunction1。

我尝试使用消费者组,但两个 azure 函数都被触发了。 任何帮助表示赞赏。

这不是直接可能的。来自两个设备的事件进入同一个事件中心,事件中心是 Functions 触发器的粒度级别。

消费者组是针对独立消费者的,两者都会得到所有个事件。

我建议您使用一个函数来接收来自所有设备的事件。如果需要,此功能然后可以根据设备 ID 将请求路由到其他功能,例如通过 HTTP 调用或通过单独的存储队列。

另一种选择是使用 IoT 中心路由。您可以根据 deviceid 将事件路由到不同的 IoT 中心终结点。然后,您可以将 azurefunction1 连接到设备 1 的端点,并将 azurefunction2 连接到设备 2 的端点。

Routing Messages 教程介绍了如何配置和使用路由。