Azure 流分析未从 IoT Edge 上的 ML 模块接收输入

Azure Streaming Analytics not receiving input from ML module on IoT Edge

我遇到了一个奇怪的问题,即当机器学习模块被下推到 IoT Edge 设备时,云中的 ASA 无法使用该模块的输出。例如ASA 输入示例 returns 即使正在发送消息(使用 VS 代码等检查)也没有任何内容。我用过这个教程:https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-deploy-machine-learning

当使用温度传感器模拟器 ASA 发送消息时,ASA 会正确采样并且它可以被 ASA 使用。 https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-simulate-device-linux

我能看到的唯一区别是 JSON 是如何形成的 - 我想知道 'applicationProperties' 部分是否导致了问题?

ML JSON 发送到 IoT 中心: 15/02/2018 2:42:14 PM> 设备:[DSVM],数据:[["{\"ambient\": {\"humidity\": 24, \"temperature\": 21.277752659180088} , \"machine\": {\"pressure\": 10.860424874724545, \"temperature\": 107.55261834480434}, \"timeCreated\": \"2018-02-15T03:42:14.140615Z\", \"anomaly\": true}"]]属性: 'AzureMLResponse': 'OK'

温度传感器 JSON 已发送至 IoTHub: 15/02/2018 2:42:14 PM> 设备:[DSVM],数据:[{"machine":{"temperature":107.55261834480434,"pressure":10.860424874724545},"ambient":{"temperature":21.277752659180088,"humidity":24},"timeCreated":"2018-02-15T03:42:14.140615Z"}]

有人对具体问题有什么想法吗?你能轻松去除属性 AzureMLResponse 吗?

谢谢, com

我找到了这个特定问题的问题。

行: return [json.dumps(input_json)]

编码 json 字符串并将其 return 发送到 IoT 中心。它自身或 IoT Hub 的模块必须在输出时自动将消息编码为 json。转义字符等是双重编码的结果。