如何在 IoT 中心的设备创建事件中包含有关 iotEdge 功能的信息?

How to include information about iotEdge capability in device created event in IoT Hub?

我想知道如果设备是边缘设备,是否可以在 Microsoft.Devices.DeviceCreated 事件数据中包含信息?我收到了两种类型设备的事件,但我无法区分它们并说哦,是的,这是一个边缘设备。

我可以看到我收到的设备孪生与我在门户中看到的有点不同。在门户孪生中包含有关 iotEdge 功能的信息:边缘设备为 true,直接连接设备为 false。

基本上,有两种处理方法issue:

  1. 订阅者事件处理程序(EventGridTrigger 函数)将提取完整的设备孪生信息,就像您在门户网站上看到的那样。

  2. 使用批量创建或更新 REST API 调用创建带有标签中附加信息的设备。我确实推荐这种方式,并且根据我的回答 ,以下是有效载荷的示例 POST:

    [
      {
        "id":"TD_0001",
        "importMode":"create",
        "status":"enabled",
        "tags":{
          "capabilities":{
             "iotEdge":false
          }
        }
      },
      {
        "id":"TD_0002",
        "importMode":"create",
        "status":"enabled",
        "tags":{
          "capabilities":{
            "iotEdge":true
          }
        },
        "capabilities":{
          "iotEdge":true
        }
      }
    ]
    

如您所见,功能 属性 已添加到 标签 中。基本上,您可以初始化任何设备孪生属性,包括报告的 属性.

AEG 的 Azure IoT 中心通知几乎是即时的,以下屏幕片段显示了事件消息的示例:

和 Azure 门户屏幕: