如何将 IoT Edge 设备用作网关

适用范围:IoT Edge 1.5 checkmark IoT Edge 1.5

重要

IoT Edge 1.5 LTS 是受支持的版本。 IoT Edge 1.4 LTS 于 2024 年 11 月 12 日终止。 如果使用的是早期版本,请参阅 Update IoT Edge

IoT Edge设备可以作为网关运行,从而在网络上的其他设备与IoT Hub之间提供连接。

IoT Edge中心模块的作用类似于IoT Hub,因此它可以处理来自具有相同IoT hub标识的其他设备的连接。 这种类型的网关模式称为 transparent,因为消息可以从下游设备(通过网关连接的设备)传递到IoT Hub,就像它们之间没有网关一样。

对于本身无法或无法连接到IoT Hub的设备,IoT Edge网关可以提供该连接。 这种类型的网关模式称为 转换 ,因为 IoT Edge 设备必须对传入的下游设备消息执行处理,然后才能将其转发到 IoT 中心。 这些方案需要IoT Edge网关上的额外模块来处理处理步骤。

透明和转换网关模式并不相互排斥。 单个IoT Edge设备可以充当透明网关和转换网关。

所有网关模式提供以下优势:

  • 边缘分析 - 在本地使用 AI 服务处理来自下游设备的数据,而无需向云发送完全保真的遥测数据。 在本地查找和响应见解,并仅将一部分数据发送到IoT Hub。
  • 连接的设备隔离 - 网关设备会保护所有连接的设备免受 Internet 的暴露。 它位于没有连接的运营技术(OT)网络和提供 Web 访问权限的信息技术(IT)网络之间。 同样,无法自行连接到IoT Hub的设备可以改为连接到网关设备。
  • 连接多路复用 - 通过IoT Edge网关连接到IoT Hub的所有设备都可以使用相同的基础连接。 此多路复用功能要求IoT Edge网关使用 AMQP 作为其云绑定协议。
  • 流量平滑处理 - 如果IoT Hub限制流量,IoT Edge设备会自动实现指数退避,并将消息保存在本地。 此优点使解决方案能灵活应对流量高峰。
  • Offline 支持 - 网关设备存储无法传输到 IoT Hub 的消息和双胞胎更新。

透明网关

在透明网关模式中,可以连接到 IoT 中心的设备可以改为连接到网关设备。 这些设备称为 下游设备子设备,具有自己的 IoT 中心标识,并使用 MQTT 或 AMQP 协议进行连接。 网关只需在设备和IoT Hub之间传递通信。 设备以及通过IoT Hub与其交互的用户都不知道网关正在调解其通信。 这样缺乏感知意味着网关被认为是“透明”的。

有关 IoT Edge 中心如何管理下游设备和云之间的通信的详细信息,请参阅 Azure IoT Edge 运行时和体系结构概述

从 IoT Edge 版本 1.2 开始,透明网关可以处理来自下游IoT Edge设备的连接。

父子关系

在 IoT Hub 中声明透明网关关系时,通过将 IoT Edge 网关设置为连接到它的下游设备的 父设备,而该下游设备为 子设备

注意事项

下游设备将数据直接发送到互联网或网关设备(启用或未启用 IoT Edge)。 子设备可以是下游设备,也可以是嵌套拓扑中的网关设备。

你需要在网关配置中的三个位置建立父/子关系:

云标识

透明网关方案中的所有设备都需要云标识,以便它们能够向IoT Hub进行身份验证。 创建或更新设备标识时,可以设置设备的父设备或子设备。 此配置授权父网关设备处理其子设备的身份验证。

注意事项

在IoT Hub中设置父设备,用作使用对称密钥身份验证的下游设备的可选步骤。 但从版本 1.1.0 开始,每个下游设备都必须分配给父设备。

可以通过将环境变量AuthenticationMode设置为值CloudAndScope,将IoT Edge Hub配置为恢复初始化行为。

子设备只能有一个父级设备。 默认情况下,一个父对象最多只能有 100 个子对象。 可以通过在父设备的 edgeHub 模块中设置“MaxConnectedClients”环境变量来更改此限制。

IoT Edge设备可以在透明网关连接中作为父设备或子设备。 可以创建多个IoT Edge设备相互报告的层次结构。 网关层次结构的顶端节点最多可以有五代子节点。 例如,一个IoT Edge设备可以将其下方的五层IoT Edge设备作为子级连接。 但第五代IoT Edge设备不能有任何子设备、无论是IoT Edge还是其他设备。

网关发现

子设备需要能够在本地网络上找到其父设备。 使用 主机名(可以是完全限定的域名(FQDN)或 IP 地址)来配置网关设备,子设备使用这些信息来定位网关设备。

在下游 IoT 设备上,使用 connection string 中的 gatewayHostname 参数指向父设备。

在下游IoT Edge设备上,使用配置文件中的 parent_hostname 参数指向父设备。

安全连接

父设备和子设备还需要对彼此的连接进行身份验证。 每个设备都需要共享根 CA 证书的副本,子设备使用该证书来验证它们是否连接到正确的网关。

当多个IoT Edge网关在网关层次结构中相互连接时,层次结构中的所有设备都应使用单个证书链。

透明网关后面的设备功能

使用IoT Edge消息传送管道的所有IoT Hub基元也支持透明网关方案。 每个IoT Edge网关都有通过它传递的消息的存储和转发功能。

使用下表查看与网关后面的设备相比,设备支持不同的IoT Hub功能。

能力 IoT 设备 网关后的 IoT 物联网边缘设备 网关后面的IoT Edge
设备到云 (D2C) 的消息 是 - IoT D2C 是 - 子级 IoT D2C 是 - IoT Edge D2C 是 - 子节点 IoT Edge D2C
云到设备 (C2D) 消息 是 - IoT C2D 是 - IoT 子级 C2D 否 - IoT Edge C2D No - IoT Edge子设备 C2D
直接方法 是 - IoT 直接方法 是 - 子级 IoT 直接方法 是 - IoT Edge 直接方法 是 - 子 IoT Edge 直接方法
设备孪生模块孪生 是 - IoT 孪生体 是 - 子级 IoT 孪生体 Yes - IoT Edge数字孪生 Yes - 子IoT Edge双胞胎
文件上传 是 - IoT 文件上传 否 - IoT 子文件上传 无 - IoT Edge文件上传 No - IoT Edge子文件上传
容器映像拉取 是 - IoT Edge容器镜像下载 是 - 子级 IoT Edge 容器拉取
二进制对象上传 是 - IoT Edge Blob 上传 是 - 子IoT Edge Blob上传

可以将容器映像从父设备下载、存储和传递到子设备。

我们可以将Blobs(包括支持包和日志)从子设备上传到父设备。

转换网关

如果下游设备无法连接到 IoT 中心,IoT Edge 网关需要充当翻译器。 通常,不支持 MQTT、AMQP 或 HTTP 的设备需要此模式。 由于这些设备无法连接到IoT Hub,因此它们也不能在没有预处理的情况下连接到IoT Edge中心模块。

需要将通常特定于下游设备硬件或协议的自定义或非Microsoft模块部署到IoT Edge网关。 这些翻译模块接收传入的消息,并将其转换为IoT Hub可以理解的格式。

转换网关有两种模式:协议转换和标识转换 。

此图显示转换网关模式。

协议转换

在协议转换网关模式中,只有 IoT Edge 网关在 IoT Hub 中拥有身份标识。 转换模块接收来自下游设备的消息,将其转换为受支持的协议,然后IoT Edge设备代表下游设备发送消息。 所有信息看起来都来自一个设备,即网关。 如果云应用程序希望按设备分析数据,下游设备必须在消息中嵌入更多标识信息。 此外,IoT Hub的基元,例如双胞胎和直接方法,仅在网关设备上受支持,而不支持下游设备。 与透明网关相比,这种模式中的网关被视为不透明,因为它们掩盖了下游设备的标识。

协议转换支持资源受限的设备。 许多现有设备正在生成可为业务见解提供支持的数据;但是,它们没有考虑到云连接的设计。 不透明的网关允许解锁这些数据,并在 IoT 解决方案中使用这些数据。

身份转换

标识转换网关模式基于协议转换而构建,但IoT Edge网关还代表下游设备提供IoT Hub设备标识。 转换模块负责了解下游设备使用的协议,为他们提供标识,并将消息转换为IoT Hub基元。 下游设备在 IoT Hub 中显示为具有数字双胞胎和方法的一流设备。 用户可以与IoT Hub中的设备交互,并且不知道中间网关设备。

标识转换具备协议转换的优势,并且还允许从云完全管理下游设备。 无论使用哪种协议,IoT 解决方案中的所有设备都显示在IoT Hub中。

转换网关后面的设备功能

下表介绍了如何在两种转换网关模式中将IoT Hub功能扩展到下游设备。

能力 协议转换 身份转换
存储在 IoT 中心标识注册表中的标识 仅网关设备的标识 所有已连接设备的身份
设备孪生 仅网关具有设备和模块孪生体 每个已连接的设备均有自己的设备孪生
直接方法和云端到设备消息 云只能对网关设备寻址 云可以对每个已连接的设备单独寻址
IoT Hub配额和限流 适用于网关设备 适用于每个设备

当网关使用协议转换模式时,通过该网关连接的所有设备共享相同的云到设备队列,该队列最多可以包含 50 条消息。 仅当很少有设备通过每个现场网关进行连接并且其云到设备流量较低时,才使用此模式。

IoT Edge运行时不包括协议或标识转换功能。 这些模式需要通常特定于硬件和协议的自定义或非Microsoft模块。 Azure Marketplace包含多个要从中选择的协议转换模块。 有关使用标识转换模式的示例,请参阅 Azure IoT Edge LoRaWAN 初学者工具包

后续步骤

了解设置透明网关的三个步骤: