你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
设备基础结构和连接
本概述介绍了在典型 Azure IoT 解决方案中设备如何连接到云的关键概念。 本文还介绍了可选基础结构元素,例如网关和网桥。 每个部分都包含指向提供进一步详细信息和指导的内容的链接。
IoT Central 应用程序在内部使用 IoT 中心 和设备预配服务 (DPS) 服务。 因此,无论是使用 IoT Central 浏览 IoT 方案还是使用 IoT 中心 和 DPS 生成解决方案,本文中的概念都会适用。
下图显示了典型 IoT 解决方案中组件的高级视图。 本文重点介绍设备与 IoT 云服务之间的连接(包括网关和网桥),如关系图所示。
基元
Azure IoT 设备使用以下基元与云服务交换数据。 设备使用:
- 设备到云消息,用于将时序遥测数据发送到云。 例如,从连接到设备的传感器收集的温度数据。
- 用于与云共享和同步状态数据的设备孪生。 例如,设备可以使用设备孪生来将它控制的阀门的当前状态报告给云,并从云中接收所需的目标温度。
- 用于表示数字世界中设备的数字孪生体。 例如,数字孪生体可以表示设备的物理位置、功能及其与其他设备的关系。
- 媒体文件(如捕获的图像和视频)的文件上传。 间歇性连接的设备可以发送遥测批处理。 设备可以压缩上传以节省带宽。
- 用于从云接收命令的直接方法。 直接方法可以具有参数并返回响应。 例如,云可以调用直接方法来请求设备重新启动。
- 云到设备消息,可从云接收单向通知。 例如,更新已就绪,可以下载的通知。
若要了解详细信息,请参阅设备到云通信指南和云到设备通信指南。
面向设备的云终结点
Azure IoT 中心可公开每个设备终结点的集合,以允许设备与云交换数据。 这些终结点包括:
- 发送设备到云的消息。 设备使用此终结点发送设备到云的消息。
- 检索并更新设备孪生的属性。 设备使用此终结点访问其设备孪生属性。
- 接收直接方法请求。 设备使用此终结点来侦听直接方法请求。
每个 IoT 中心都有独一无二的主机名,用于将设备连接到中心。 主机名的格式为 iothubname.azure-devices.net
。 如果使用其中一个设备 SDK,则无需知道各个终结点的全名,因为这些 SDK 提供更高级别的抽象。 但设备确实需要知道要连接到的 IoT 中心的主机名。
设备可以建立与 IoT 中心的安全连接:
- 直接方式,在这种情况下,必须向设备提供包含主机名的连接字符串。
- 使用 DPS 的间接方式,在这种情况下,设备将连接到已知的 DPS 终结点,以检索它分配到的 IoT 中心的连接字符串。
使用 DPS 的优点在于无需为所有设备配置特定于 IoT 中心的连接字符串。 相反,可以将设备配置为连接到已知的常见 DPS 终结点,从而可以在其中发现其连接详细信息。 要了解详细信息,请参阅设备预配服务。
若要详细了解实现自动重新连接到终结点的过程,请参阅管理设备重新连接以创建可复原的应用程序。
设备连接字符串
设备连接字符串为设备提供安全连接到 IoT 中心所需的信息。 连接字符串包括以下信息:
- IoT 中心的主机名。
- 已注册到 IoT 中心的设备 ID。
- 设备与 IoT 中心建立安全连接所需的安全信息。
身份验证
Azure IoT 设备使用 TLS 来验证它们要连接到的 IoT 中心或 DPS 终结点的真实性。 设备 SDK 包括当前与 IoT 中心建立安全连接所需的 DigiCert 全局根 G2 TLS 证书。 有关详细信息,请参阅 IoT 中心中的传输层安全性 (TLS) 支持和 Azure IoT 中心 设备预配服务 (DPS) 中的 TLS 支持。
Azure IoT 设备可以使用共享访问签名 (SAS) 令牌或 X.509 证书向 IoT 中心进行身份验证。 在生产环境中,建议使用 X.509 证书。 要详细了解设备身份验证,请参阅:
- 使用 X.509 CA 证书向 IoT 中心验证设备身份
- 使用 SAS 令牌向 IoT 中心验证设备身份
- DPS 对称密钥证明
- DPS X.509 证书证明
- DPS 受信任平台模块证明
- IoT Central 中的设备身份验证概念
设备和 IoT 中心之间交换的所有数据是加密的。
要详细了解 IoT 解决方案中的安全性,请参阅 IoT 解决方案的安全体系结构。
协议
IoT 设备在连接到 IoT 中心或 DPS 终结点时,可以使用多种网络协议之一:
- MQTT
- 基于 WebSocket 的 MQTT
- 高级消息队列协议 (AMQP)
- 基于 WebSockets 的 AMQP
- HTTPS
注意
IoT 中心对 MQTT 的功能支持有限。 如果你的解决方案需要 MQTT v3.1.1 或 v5 支持,我们建议查看 Azure 事件网格中的 MQTT 支持。 有关详细信息,请参阅比较 IoT 中心和事件网格中的 MQTT 支持。
要详细了解如何为设备选择协议以连接到云,请参阅:
行业 IoT 方案通常使用开放平台通信统一体系结构 (OPC UA) 行业标准开放接口。 若要启用与 Azure 云的连接,请使用 Azure IoT 操作。 若要了解详细信息,请参阅什么是 Azure IoT 操作?。
连接模式
IoT 设备可以使用两种广泛类别的连接模式连接到云:
持久性连接
如果解决方案需要命令和控制功能,则需要持久性连接。 在命令和控制方案中,IoT Central 解决方案会将命令发送到设备,以近实时控制其行为。 持久性连接会保持与云的网络连接,每当发生中断时都会重新连接。 使用 MQTT 或 AMQP 协议可以实现与 IoT 中心的持久性设备连接。 IoT 设备 SDK 同时启用 MQTT 和 AMQP 协议,以创建与 IoT 中心的持久性连接。
临时连接
临时连接是一个短暂的连接,支持设备向 IoT 中心发送遥测数据。 设备发送遥测数据后,会丢弃连接。 当设备有更多要发送的遥测数据时,会重新连接。 临时连接不适用于命令和控制方案。 如果设备客户端只需发送遥测数据,则可以使用 HTTP API。
现场网关
现场网关(有时称为边缘网关)通常部署在本地且靠近 IoT 设备。 现场网关可代表 IoT 设备处理与云的通信。 现场网关可以:
- 执行协议转换。 例如,启用已启用蓝牙的设备以连接到云。
- 管理脱机和断开连接的方案。 例如,在无法访问云终结点时缓冲遥测数据。
- 在将遥测数据发送到云之前对其进行筛选、压缩或聚合。
- 在边缘运行逻辑,以消除与代表云中的设备运行逻辑相关的延迟。 例如,检测温度峰值并打开阀门作为响应。
可以使用 Azure IoT Edge 将现场网关部署到本地环境。 IoT Edge 提供了一组功能,可支持大规模部署和管理现场网关。 IoT Edge 还提供了一组可用于实现常见网关方案的模块。 要了解详细信息,请参阅什么是 Azure IoT Edge?
IoT Edge 设备可以维持与 IoT 中心的持久性连接。 网关可将设备遥测数据转发到 IoT 中心。 此选项允许对连接到 IoT Edge 设备的下游设备启用命令和控制。
网桥
设备网桥支持将连接到非 Microsoft 云的设备连接到 IoT 解决方案。 非 Microsoft 云的示例包括 Sigfox、Particle Device Cloud 和 The Things Network。
开放源代码 IoT Central 设备网桥可充当转换器,以将遥测数据转发到 IoT Central 应用程序。 要了解详细信息,请参阅 Azure IoT Central 设备网桥。 存在用于将设备连接到 IoT 中心的非 Microsoft 网桥解决方案,例如 Tartabit IoT 网桥。
后续步骤
了解 Azure IoT 解决方案中的设备连接概述后,接下来可以执行一些建议的后续步骤: