Azure Streaming Analytics未在IoT Edge上接收来自ML模块的输入

时间:2018-02-15 00:20:14

标签: azure machine-learning iot azure-iot-hub

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

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

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

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

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

有没有人对特定问题有什么想法?你能轻易地删除AzureMLResponse属性吗?

谢谢, COM

1 个答案:

答案 0 :(得分:0)

我发现了这个问题的问题。

该行: return [json.dumps(input_json)]

对json字符串进行编码并将其返回给IoT Hub。它自己的模块或IoT Hub必须在出路时自动将消息编码为json。转义字符等是双重编码的结果。