Visual studio code 使用Visual Studio代码调试Azure IoT边缘模块

Visual studio code 使用Visual Studio代码调试Azure IoT边缘模块,visual-studio-code,azure-iot-edge,Visual Studio Code,Azure Iot Edge,我无法在VS代码上对IoT边缘模块进行本地调试,但部分问题可能是我不理解我在步骤中所做的 我遵循微软指南。当我在VS代码中运行命令“Azure IoT Edge:Start IoT Edge Hub Simulator for Single Module”时,有人能向我解释一下,为什么我需要传递“输入名称”?为什么模拟器需要知道这一点。我的edge模块上有多个输入命令,我需要传递这些命令,这让我质疑模拟器的实际功能。我希望能够调试多个输入 同样在相同的文档中,我看不出它如何定义我想要在模拟器中运

我无法在VS代码上对IoT边缘模块进行本地调试,但部分问题可能是我不理解我在步骤中所做的

我遵循微软指南。当我在VS代码中运行命令“Azure IoT Edge:Start IoT Edge Hub Simulator for Single Module”时,有人能向我解释一下,为什么我需要传递“输入名称”?为什么模拟器需要知道这一点。我的edge模块上有多个输入命令,我需要传递这些命令,这让我质疑模拟器的实际功能。我希望能够调试多个输入


同样在相同的文档中,我看不出它如何定义我想要在模拟器中运行的模块。我是否遗漏了什么或流程混乱?

当您为单个模块启动IoT Edge Hub模拟器时,会生成两个Docker容器。一个是edgeHub,另一个是测试实用程序。测试实用程序充当您可以向其发送HTTP请求的服务器,请求指定输入名称和数据。您可以使用它向模块上的各种输入发送消息。只要看看这个,我就明白了为什么向模拟器提供输入名称会让人困惑。但是,当您检查edgeHub容器时,会看到传递了以下环境值:

"routes__output=FROM /messages/modules/target/outputs/* INTO BrokeredEndpoint(\"/modules/input/inputs/print\")",
"routes__r1=FROM /messages/modules/input/outputs/input2 INTO BrokeredEndpoint(\"/modules/target/inputs/input2\")",
"routes__r2=FROM /messages/modules/input/outputs/foo INTO BrokeredEndpoint(\"/modules/target/inputs/foo\")",
"routes__r3=FROM /messages/modules/input/outputs/input1 INTO BrokeredEndpoint(\"/modules/target/inputs/input1\")"
就像在真正的设备上一样,您需要路由来与模块通信。edgeHub容器使用您在模拟器启动期间提供的值注册这些路由。该输入可以是逗号分隔的列表。因此,如果您正在使用更多输入,请在启动模拟器时随时提供这些输入。在封面下,该命令运行:

iotedgehubdev启动-i“输入1,输入2,foo”
注意:当我第一次使用最新的VS代码扩展测试它时,文本框包含:“input1,input2”