调试Azure IoT Edge模块
分类: Azure物联网 ◆ 标签: #Azure #IoT Edge # ◆ 发布于: 2023-06-14 22:32:42

我们前面已经学习过了,如何配置开发工具和环境,也详细的描述了开发一个Azure IoT Edge
模块的一般步骤,和项目模板的详细设计,但是如何对我们的Azure IoT Edge
模块进行调试呢?
Azure IoT Edge
模块的运行是需要环境的,没有环境是无法运行的。因此一定要按照之前的文章来设定,关于之前的文章:
- https://www.azuredeveloper.cn/article/how-to-setup-a-enviroment-for-azure-iot-edge-module-develop
- https://www.azuredeveloper.cn/article/setup-tools-best-pratice-for-azure-iot-edge-module-develop
- https://www.azuredeveloper.cn/article/how-to-develop-azure-iot-edge-module
我们这一节来学习如何调试Azure IoT Edge
的模块代码, 调试Azure IoT Edge
模块我们推荐两种方式:
- 对单个的模块进行调试
- 使用
attach
的模式调试多个模块
对单个模块进行调试
对单个模块进行调试比较简单,只需要在开发机本地就可以完成了,请使用如下的步骤进行调试。
- 在
vs code
里使用命令Ctrl + Shift + P
启动Azure IoT Edge: Start IoT Edge Hub Simulator for Single module
, 如下图:
- 在出现的窗口里输入你需要输入的
input
名字,可以输入多个,以逗号分隔开,如下图:
- 最后
Azure IoT Edge Hub Simulator
设置成功了,如下图:
针对单个模块的模拟器设置成功后,我们可以在vs code
的docker插件打开来看一下,这个时候docker
运行的容器,如下图:
从这个图中可以看到,模拟器有两个docker
容器启动了,一个是input
镜像的容器,这是一个用户测试的工具,这个容器实例会监听本地端口53000
端口,该端口用于像edgeHub
模拟器发生测试模块所需要的Input
, 例如使用curl
:
curl --header "Content-Type: application/json" --request POST --data '{"inputName": "inputFromSensor","data":"hello world"}' http://localhost:53000/api/v1/messages
从这里可以看到inputName
指定了我们需要的input
, 后面的数据就是我们需要的。当然你可以使用postman
来给发送消息。
然后我们打开VS code
的Terminal
, 进入到模块的目录,例如:Demo2Solution\modules\Sample3Module
, 在该目录下运行dotnet build
, 然后打开您的代码文件在需要调试的地方放置断点,然后按Ctrl + Shift + E
或者直接在左侧的菜单栏上选择调试窗口,同时在窗口处选择本地调试配置文件,如下图所示:
如此就可以按照单步调试的规则进行单个模块调试了。
另外需要注意的是,调试完成之后一定要使用Ctrl + Shift + P
, 然后Azure IoT Edge: stop IoT Edge Hub Simulator
停止模拟器。
使用模拟器远程attach进行调试
这个调试的办法首先需要一个Azure IoT Hub, 并且在该IoT Hub里已经创建了一个Azure IoT Edge
设备的Identity
, 然后使用如下的步骤:
1.使用vs code
在本地设置模拟器指向该Azure IoT Edge
的Identity, 如下图:
2.设置成功之后,在您的源文件里添加断点。
3.在vs code
里选择deployment.debug.template.json
, 在该文件上右键单击Build and Run IoT Edge solution in Simulator
, 你会看到termianl
的显示结果:
4.同时您可以从docker
的界面中可以看到如下的docker
设置:
5.打开vs code
的debug面板,选择远程调试的配置文件,选择start debug, 在出现的进程里面选择dotnet SampleModule.dll
的进程。从调试面板的左侧里即可以观察到相应的进程。
6.按Shift + F5
停止调试,然后运行Ctrl + shift + P
, Azure IoT Edge: stop iot edge hub simulator
至此完成attach
模式的调试。