本地模拟IoT Edge设备测试Azure IoT Hub指标采集器问题咨询
解决方案
这个错误的核心原因是容器网络的命名空间隔离:你在MetricsEndpointsCSV里配置的127.0.0.1是metrics-collector容器自身的本地回环地址,和你做了端口映射的宿主机回环地址不属于同一个网络空间,自然无法访问。
按照以下步骤修改即可解决:
- 替换
MetricsEndpointsCSV配置值,不要用127.0.0.1,本地edgehubdev环境下同一Docker网络内的模块可以直接用模块名作为域名互相访问,所以将配置改为http://edgeHubDev:9600/metrics即可。 - 确认edgeHubDev模块的部署清单中已经暴露了9600端口,不需要额外映射到宿主机就能被同网络下的其他模块访问。
- 检查路由规则,确保metrics-collector模块发出的消息能被转发到IoT Hub,参考路由配置:
FROM /messages/modules/metrics-collector/* INTO $upstream。 - 本地验证阶段可以直接用IoT Hub的内置事件监控功能查看指标消息是否成功上传,不需要提前部署Event Hub、Function App等后续处理组件。
内容的提问来源于stack exchange,提问作者Mehdi Benmoha
相关产品推荐
相关产品推荐

