你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将 Azure IoT Edge 设备连接到 Azure IoT Central 应用程序

Azure IoT Edge 将云分析和自定义业务逻辑从云移动到设备。 此方法可让你的云解决方案专注于业务见解而不是数据管理。 通过将业务逻辑打包到标准容器中,横向扩展 IoT 解决方案,然后将这些容器部署到设备,并从云中监视所有这些设备。

本文介绍:

  • IoT Edge 网关模式与 IoT Central。
  • 如何将 IoT Edge 设备连接到 IoT Central 应用程序。
  • 如何使用 IoT Central 管理 IoT Edge 设备。

若要了解有关 IoT Edge 的详细信息,请参阅什么是 Azure IoT Edge?

IoT Edge

Azure IoT Central with Azure IoT Edge

IoT Edge 包含三个组件:

  • IoT Edge 模块是容器,可以运行 Azure 服务、合作伙伴服务或者你自己的代码。 这些模块部署到 IoT Edge 设备,在设备上以本地方式运行。 部署清单指定要部署到 IoT Edge 设备的模块。
  • IoT Edge 运行时在每个 IoT Edge 设备上运行,并管理部署到每个设备的模块。 运行时包括两个 IoT Edge 模块:IoT Edge 代理和 IoT Edge 中心
  • 可以通过基于云的界面远程监视和管理 IoT Edge 设备。 IoT Central 是云界面的一个示例。

IoT Central 为 IoT Edge 设备启用以下功能:

  • 部署清单管理。 IoT Central 应用程序可以管理部署清单集合并将其分配给设备。
  • 设备模板,用于描述 IoT Edge 设备的功能,例如:
    • 每个 IoT Edge 模块发送的遥测数据。
    • 每个 IoT Edge 模块报告的属性。
    • 每个 IoT Edge 模块响应的命令。
    • IoT Edge 网关设备与下游设备之间的关系。
    • 不存储在 IoT Edge 设备上的云属性。
    • 设备视图和窗体。
  • 使用 Azure IoT 设备预配服务大规模预配 Azure IoT Edge 设备的功能。
  • 规则和操作。
  • 自定义仪表板和分析。
  • 从 Azure IoT Edge 设备连续导出遥测数据。

IoT Edge 设备可以为:

  • 由自定义模块组成的独立设备。
  • 连接了下游设备的网关设备。 网关设备可以包括自定义模块。

IoT Edge 设备和 IoT Central

IoT Edge 设备可以使用“共享访问签名”令牌或 X.509 证书对 IoT Central 进行身份验证。 你可以在首次连接之前先在 IoT Central 中手动注册 IoT Edge 设备,或使用设备预配服务来处理注册。 若要了解详细信息,请参阅设备连接方式

IoT Central 可以使用设备模板来定义 IoT Central 与 IoT Edge 设备进行交互的方式。 例如,设备模板指定:

  • IoT Edge 设备发送的遥测和属性的类型,以便 IoT Central 可以对其进行解释,并创建可视化效果。
  • IoT Edge 设备响应的命令,以便 IoT Central 可以显示用于调用命令的运算符的 UI。

如果没有与设备关联的设备模板,遥测和属性值将显示为未建模数据。 但是,你仍然可以使用 IoT Central 数据导出功能将遥测和属性值转发到其他后端服务。

IoT Edge 部署清单

在 IoT Edge 中,你以模块的形式来部署和管理业务逻辑。 IoT Edge 模块是由 IoT Edge 托管的最小计算单位,可以包含 Azure 服务(如 Azure 流分析)或你自己特定于解决方案的代码。

IoT Edge 部署清单列出要在设备上部署的 IoT Edge 模块以及如何对其进行配置的信息。

在 Azure IoT Central 中,导航到 Edge 清单以导入和管理解决方案中 IoT Edge 设备的部署清单。

下面的代码片段显示 IoT Edge 部署清单的示例:

{
  "modulesContent": {
    "$edgeAgent": {
      "properties.desired": {
        "schemaVersion": "1.0",
        "runtime": {
          "type": "docker",
          "settings": {
            "minDockerVersion": "v1.25",
            "loggingOptions": "",
            "registryCredentials": {}
          }
        },
        "systemModules": {
          "edgeAgent": {
            "type": "docker",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-agent:1.0.9",
              "createOptions": "{}"
            }
          },
          "edgeHub": {
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-hub:1.0.9",
              "createOptions": "{}"
            }
          }
        },
        "modules": {
          "SimulatedTemperatureSensor": {
            "version": "1.0",
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0",
              "createOptions": "{}"
            }
          }
        }
      }
    },
    "$edgeHub": {
      "properties.desired": {
        "schemaVersion": "1.0",
        "routes": {
            "route": "FROM /* INTO $upstream"
        },
        "storeAndForwardConfiguration": {
          "timeToLiveSecs": 7200
        }
      }
    },
    "SimulatedTemperatureSensor": {
      "properties.desired": {
           "SendData": true,
           "SendInterval": 10
      }
    }
  }
}

在前面的代码片段中,可以看到:

  • 有三种模块。 每个部署清单中都存在的 IoT Edge 代理和 IoT Edge 中心系统模块。 自定义 SimulatedTemperatureSensor 模块。
  • 从无需任何凭据即可连接的 Azure 容器注册表存储库中拉取公用模块映像。 对于专用模块映像,请为 IoT Edge 代理模块设置要在 registryCredentials 设置中使用的容器注册表凭据。
  • 自定义 SimulatedTemperatureSensor 模块有两个可写属性:"SendData": true"SendInterval": 10

以下屏幕截图显示了这个导入到 IoT Central 的部署清单:

Screenshot that shows the imported Environmental sensor deployment manifest.

如果应用程序使用组织,则可以将部署清单分配给特定组织。 上一屏幕截图显示了分配给 Store Manager / Americas 组织的部署清单。

若要了解如何使用“Edge 清单”页并将部署清单分配给 IoT Edge 设备,请参阅在 IoT Central 应用程序中管理 IoT Edge 部署清单

管理未分配设备

没有关联设备模板的 IoT Edge 设备称为未分配设备。 不能将 IoT Central 功能(如仪表板、设备组、分析、规则和作业)用于未分配设备。 但是,可以将以下功能用于未分配设备:

  • 查看原始数据,例如遥测和属性。
  • 调用设备命令。
  • 读取和写入属性。

Screenshot that shows unassigned device capabilities.

还可以管理未分配设备上的单个模块:

Screenshot that shows the options for managing modules on unassigned devices.

IoT Edge 设备模板

IoT Central 设备模板使用模型来描述 IoT Edge 设备的功能。 设备模板对于 IoT Edge 设备是可选的。 借助设备模板,可以使用 IoT Central 功能(如仪表板和分析)与遥测、属性和命令进行交互。 下图显示了 IoT Edge 设备的模型的结构:

Diagram that shows the model structure for an IoT Edge device connected to IoT Central.

IoT Central 对 IoT Edge 设备建模的方式如下:

  • 每个 IoT Edge 设备模板都具有一个功能模型。
  • 对于部署清单中列出的每个自定义模块,如果要使用 IoT Central 与该模块交互,请添加模块定义。
  • 模块功能模型可实现一个或多个模块接口。
  • 每个模块接口都包含遥测、属性和命令。

可以根据设备清单中定义的模块和属性生成基本功能模型。 若要了解详细信息,请参阅向设备模板添加模块和属性

IoT Edge 网关模式

IoT Central 支持以下 IoT Edge 设备模式:

作为透明网关的 IoT Edge

下游设备使用自己的标识通过网关连接到 IoT Central。

IoT Edge as transparent gateway

IoT Edge 设备连同已连接到该设备的下游设备一起在 IoT Central 中预配。 用于通过网关预配下游设备的运行时支持当前不受支持。

IoT Edge 中心模块的行为类似于 IoT Central,并处理在 IoT Central 中注册的设备的连接。 消息从下游设备传递到 IoT Central,就好像它们之间没有任何网关。 在透明网关中,不能使用自定义模块来处理来自下游设备的消息。

注意

IoT Central 目前不支持将 IoT Edge 设备作为下游设备连接到 IoT Edge 透明网关。 这是因为连接到 IoT Central 的所有设备均使用设备预配服务 (DPS) 进行预配,而 DPS 当前不支持嵌套的 IoT Edge 方案。

作为协议转换网关的 IoT Edge

此模式使你可以连接不能使用 IoT Central 支持的任何协议的设备。

IoT Edge as protocol translation gateway

IoT Edge 设备在 IoT Central 中预配,来自下游设备的任何遥测数据都表示为来自 IoT Edge 设备。 已连接到 IoT Edge 设备的下游设备不会在 IoT Central 中预配。

作为标识转换网关的 IoT Edge

下游设备连接到网关中的模块,该模块为其提供 IoT Central 设备标识。

IoT Edge as identity translation gateway

IoT Edge 设备连同已连接到该设备的下游设备一起在 IoT Central 中预配。 目前 IoT Central 网关没有运行时支持,无法提供标识和预配下游设备。 如果你引入自己的标识转换模块,则 IoT Central 可以支持此模式。

下游设备与网关和模块的关系

如果下游设备通过 IoT Edge 中心模块连接到 IoT Edge 网关设备,则 IoT Edge 设备是透明网关:

Diagram of transparent gateway

如果下游设备通过自定义模块连接到 IoT Edge 网关设备,则 IoT Edge 设备是转换网关。 在下面的示例中,下游设备通过执行协议转换的 Modbus 自定义模块进行连接

Diagram of custom module connection

下图显示了通过两种类型的模块与 IoT Edge 网关设备的连接。 在此方案中,IoT Edge 设备既是透明网关,又是转换网关:

Diagram of connecting using both connection modules

下游设备可通过多个自定义模块连接到 IoT Edge 网关设备。 下图显示了通过 Modbus 自定义模块、BLE 自定义模块和 IoT Edge 中心模块连接的下游设备

Diagram of connecting using multiple custom modules

若要了解有关 IoT Edge 网管模式的详细信息,请参阅如何将 IoT Edge 设备用作网关

部署 IoT Edge 运行时

若要了解可以运行 IoT Edge 运行时的环境,请参阅 Azure IoT Edge 支持的系统

你还可以在以下环境中安装 IoT Edge 运行时:

监视 IoT Edge 设备

若要了解如何远程监视 IoT Edge 队列,请参阅收集和传输指标

后续步骤

建议的下一步是了解如何开发自己的 IoT Edge 模块