如何将Azure IoT Hub特定消息路由连接至Azure Function的Event Hub?
Azure IoT Hub消息路由连接Azure Function问题解答
可以直接连接,无需通过Event Hub兼容端点中转,你当前的配置方式有误导致无法生效。
错误原因:你在
function.json中配置的"EventHubName": "messages/events/valid-route"格式不符合要求。IoT Hub的消息路由不会将路由名称直接拼接在默认端点路径后,而是需要通过自定义端点来关联目标服务。正确实现方式(两种可选):
直接将路由绑定到Azure Function端点
- 在IoT Hub门户中进入「消息路由」,点击「添加端点」,类型选择「Azure Function」,填写你的Function应用信息(订阅、资源组、Function应用名称、具体Function名称)完成关联。
- 创建或编辑路由规则,设置消息筛选条件,将符合规则的消息发送到刚才创建的Azure Function端点。
- 此时Function会直接接收该路由筛选后的消息,无需修改
function.json中的EventHubName配置,只需确保Function的触发器类型为Event Hub或IoT Hub触发器(根据绑定类型选择)。
通过自定义Event Hub端点中转(适合需要Event Hub中间处理的场景)
- 在IoT Hub的「消息路由」中添加类型为「Event Hub」的自定义端点,关联一个独立的Event Hub资源。
- 创建路由规则,将消息发送到这个自定义Event Hub端点。
- 在Azure Function的
function.json中,将EventHubName配置为该自定义Event Hub的名称,connection配置为该Event Hub的连接字符串,这样Function就能接收路由过来的消息。
注意事项:
- 确保IoT Hub有足够的权限访问目标Azure Function或Event Hub资源。
- 路由规则的筛选条件要准确,避免消息被过滤掉导致Function收不到数据。
内容的提问来源于stack exchange,提问作者Oswaldo Hernandez
相关产品推荐
相关产品推荐

