【问题标题】:How to interact with Azure IoT Edge Module and Module Twin when debugging Module with Visual Studio使用 Visual Studio 调试模块时如何与 Azure IoT Edge 模块和模块孪生进行交互
【发布时间】:2019-11-18 11:07:45
【问题描述】:

我已经设置了一个 Azure IoT Edge 模块,通过 Azure 将它部署到 IoT Edge 运行时时效果很好。

但是,我无法找到一种在本地调试时如何与模块交互的方法。我需要做的是在其上调用直接方法并在其运行时修改模块孪生。

另外我有一个问题:本地调试模块实际连接到哪里?它是否使用 Visual Studio 的“IoT Edge 工具”中配置的连接字符串打开与 Azure IoT Edge 设备的连接?至少看起来不是这样,因为它不会从 Azure IoT Hub 读取 Module Twin 的设置。

其他问题:在 Visual Studio 中的 Edge 解决方案上,当我右键单击项目节点时,我可以“构建并推送模块”到 Azure 容器注册表,并在模拟器中运行它。我假设在模拟器中运行它和调试它不一样?

非常感谢您!

【问题讨论】:

  • 在这里寻找本地模拟器:github.com/Azure/iotedgedev
  • 嗨@kolbi,请您将这些问题分解为多个问题。这可能会让社区更容易提供帮助。

标签: azure-iot-edge


【解决方案1】:

在 Visual Studio 中调试模块时,模板会以单模块模式启动 iotedgehubdev(也称为模拟器)。

使用此模式,您可以通过 REST api 向您的模块发送消息

curl --header "Content-Type: application/json" --request POST --data '{"inputName": "<input_name>","data":"hello world"}' http://localhost:53000/api/v1/messages

它还会启动您的模块并将其命名为“目标”

iotedgehubdev modulecred -l -m "target"
   EdgeHubConnectionString=HostName=<hostname>;GatewayHostName=localhost;DeviceId=<your-edge-device-id>;ModuleId=target;SharedAccessKey=<key>
   EdgeModuleCACertificateFile=C:\ProgramData\iotedgehubdev\data\certs\edge-device-ca\cert\edge-device-ca.cert.pem

模块目标可以在 azure 门户 - iothub 中访问。您可以使用接口调用方法和更改孪生模块

最后,在模拟器中运行与调试不同。 当您使用该命令时,VS 在模式模拟器中运行 iotedgehubdev,它将运行部署文件中的所有模块并应用路由、配置等。

您仍然可以调试模块,但您必须使用远程调试器,这完全是另一个主题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多