使用 Visual Studio 代码调试 Azure IoT Edge 模块
Debugging Azure IoT Edge modules using Visual Studio Code
我无法在 VS Code 上对 IoT Edge 模块进行本地调试,但部分问题可能是我不明白我在这些步骤中做了什么。
我正在遵循 Microsoft 指南 here。当我在 VS Code 中 运行 命令“Azure IoT Edge:启动单个模块的 IoT Edge 集线器模拟器”时,谁能向我解释一下,为什么我需要传递“输入名称”?为什么模拟器不需要知道这个。我的边缘模块上有多个输入命令,我需要传递它的事实让我质疑模拟器实际上做了什么。我希望能够调试多个输入。
同样在同一份文档中,我看不到它如何定义我想要在模拟器中 运行 的模块。我是不是遗漏了什么或者过程是否令人困惑?
当您为单个模块启动 IoT Edge 集线器模拟器时,您会生成两个 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 start -i "input1,input2,foo"
注意:当我用最新的 VS 代码扩展测试它时,我第一次 运行 它,文本框包含:“input1,input2”。
我无法在 VS Code 上对 IoT Edge 模块进行本地调试,但部分问题可能是我不明白我在这些步骤中做了什么。
我正在遵循 Microsoft 指南 here。当我在 VS Code 中 运行 命令“Azure IoT Edge:启动单个模块的 IoT Edge 集线器模拟器”时,谁能向我解释一下,为什么我需要传递“输入名称”?为什么模拟器不需要知道这个。我的边缘模块上有多个输入命令,我需要传递它的事实让我质疑模拟器实际上做了什么。我希望能够调试多个输入。
同样在同一份文档中,我看不到它如何定义我想要在模拟器中 运行 的模块。我是不是遗漏了什么或者过程是否令人困惑?
当您为单个模块启动 IoT Edge 集线器模拟器时,您会生成两个 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 start -i "input1,input2,foo"
注意:当我用最新的 VS 代码扩展测试它时,我第一次 运行 它,文本框包含:“input1,input2”。