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

什么是 IoT 中心的设备更新?

随着物联网 (IoT) 解决方案越来越普遍,构成这些解决方案的设备必须易于大规模连接和管理。 Azure Device Update for IoT Hub 是一项服务,可用于为 IoT 设备部署无线更新。

Device Update for IoT Hub 是一个端到端平台,用于发布、分发和管理从微型传感器到网关级设备的所有内容的无线更新。 为了充分实现 IoT 驱动的数字化转型的优势,Device Update 提供了大规模操作、维护和更新设备的功能,例如:

  • 快速响应安全威胁。
  • 部署新功能以实现业务目标。
  • 集成更新,无需额外成本来开发和维护更新平台。

支持 IoT 设备

Device Update for IoT Hub i是一种云托管的解决方案,可用于连接几乎任何设备。 Device Update 通过与 Azure IoT 中心集成,提供优化的更新部署和简化的操作,使其易于应用于任何基于 IoT 中心的现有解决方案,包括 Azure IoT Edge 设备。

Device Update 支持为广泛的 IoT 操作系统和常见的微控制器单元 (MCU) 类设备配置、构建和部署无线更新。 Eclipse ThreadX 实时操作系统提供了与半导体合作伙伴(包括 STMicroelectronics、NXP、Renesas 和 Microchip)共同开发的 Device Update 示例。 Device Update 还提供了 Raspberry Pi 引用 Yocto 映像和 Device Update 代理模拟器二进制文件。

Device Update 代理是为各种 Linux 操作系统构建和提供的。 如果你没有运行 Eclipse ThreadX 或受支持的 Linux 平台,Device Update 还可通过提供的开放源代码进行扩展。 你可以将代理移植到你正在运行的发行版。

Device Update 适用于 IoT 即插即用,可以管理支持所需 IoT 即插即用接口的任何设备。 有关详细信息,请参阅 Device Update for IoT Hub 与 IoT 即插即用

支持的更新类型

Device Update for IoT Hub 支持两种形式的更新:基于包的更新和基于映像的更新。 你选择的方法取决于特定的用例和设备环境。

  • 基于包的更新是有针对性的更新,只改变特定设备组件或应用程序。 这些更新具有更低的带宽消耗和更短的下载与安装时间,可减少设备停机时间并避免创建映像的开销。

  • 基于映像的更新提供更高的设备最终状态可信度,使得在预生产和生产环境之间(或在 A/B 故障转移模型之间)进行复制变得更加容易。 基于映像的更新可避免管理包及其依赖项的挑战。

管理和部署控件

可使用 Device Update 管理和部署控件以最大程度地提高工作效率并节省宝贵的时间。

管理和报告工具

  • 与 Azure IoT 中心集成的更新管理体验。
  • 用于实现自动化和自定义门户体验的编程 API。
  • 通过 Azure 门户提供基于订阅和基于角色的访问控制。
  • 异质设备群中一目了然的更新合规性和状态视图。
  • Azure CLI 支持创建和管理 Device Update 资源、组和部署。

对部署的控制详细信息

  • 通过设备分组和更新计划控件逐步推出更新。
  • 支持弹性设备更新 (A/B),可提供无缝回滚。
  • 对于满足回滚条件的受管理设备,会自动回滚到定义的回退版本。
  • Delta 更新(公共预览版)可以生成更小的更新,这种小更新仅表示当前映像和目标映像之间的更改,因此可以减少带宽消耗和下载时间。
  • 支持本地内容缓存和嵌套边缘,以便能够更新云端离线设备。

全局安全性

Device Update 使用为 Microsoft Azure 开发的综合性云到边缘安全性,因此无需你自行配置安全性。 Microsoft Azure 支持全球超过十亿的 IoT 设备。 Device Update 建立在这一支持和 Windows 更新平台证明的可靠性基础上,使设备能够在全球范围内无缝更新。 有关详细信息,请参阅 Device Update 安全模型

自动设备分组

Device Update for IoT Hub 使你可根据兼容性属性和设备孪生标签对设备进行分组,以及指定要更新的设备。 你还可查看部署的状态,并确保每个设备都成功更新。

故障排除功能

故障排除功能包括代理检查和设备同步,有助于诊断和修复设备。 发生更新失败时,Device Update 可以确定未能应用更新的设备,并提供相关的失败详细信息。 此功能使你无需花时间尝试手动查明源。

Device Update 工作流

Device Update 功能包括三个方面:代理集成、导入和管理

代理集成

当设备收到更新命令时,Device Update 代理将执行请求的 downloadinstallapply 更新阶段。 在每个阶段,代理都会通过 IoT 中心将部署状态返回到 Device Update,便于你查看部署的当前状态。 如果没有正在进行的更新,代理将返回“Idle”状态。 你随时都可以取消部署。

下图展示了 Device Update 管理服务如何使用 IoT 中心设备孪生属性来协调代理更新工作流。

Device Update 代理工作流的关系图。

  1. Device Update 管理将更新命令属性值设置为 applyDeploymentcancel 以进行重置。
  2. Device Update 代理读取更新命令属性值并执行所需的命令。
  3. 代理将更新状态属性值设置为 DeploymentInprogress。 当代理处于非活动状态时,它会将属性值设置为 Idle

有关详细信息,请参阅 Device Update for IoT Hub 代理概述

导入

将更新导入 Device Update,做好将更新部署到设备的准备。 Device Update 支持导入每个设备的单个更新、完整映像(用于更新整个 OS 分区),或 APT 清单(用于描述你希望在设备上更新的各个包)。

要将更新导入到 Device Update 中,请先创建一个描述更新的导入清单,然后将该清单和更新文件或文件上传到 Azure 存储容器。 之后,你可以使用 Azure 门户或 Device Update REST API 启动异步更新导入过程。 Device Update 上传文件、处理文件,并使它们可分发到 IoT 设备。

对于敏感内容,可使用共享访问签名 (SAS)(如 Azure Blob 存储的临时 SAS)来保护下载内容。 有关详细信息,请参阅使用 SAS 授予对 Azure 存储资源的有限访问权限

下图展示了 Device Update 导入更新的过程。

Device Update for IoT Hub 导入工作流关系图。

  1. 开发人员创建包含兼容性数据的更新和清单,
  2. 然后,开发人员将更新和清单导入到 Device Update。
  3. Device Update 处理更新。
  4. 具有兼容性数据的更新现已准备就绪,可供分发。

有关导入清单的详细信息,请参阅将更新导入 Device Update for IoT Hub

管理

导入更新后,你可以查看设备和设备类的兼容更新。

Device Update 通过 IoT 中心中的标记支持组的概念。 首先将更新部署到测试组是降低生产推出期间问题风险的好方法。 有关 Device Update 组的详细信息,请参阅设备组

在 Device Update 中,部署是将正确内容连接到一组特定的兼容设备。 Device Update 会协调将命令发送到每台设备的过程,指示设备下载和安装更新并获取返回的状态。 有关衡量更新合规性的信息,请参阅 Device Update 合规性

下图演示了 Device Update 的分组和部署工作流。

Device Update for IoT Hub 分组和部署工作流关系图。

  1. 操作员可以查看设备的适用更新。
  2. Device Update 查询 IoT 中心中的设备。
  3. 操作员为指定的设备启动更新。
  4. IoT 中心向设备发送消息以下载并安装更新。
  5. 设备接收用于安装更新的命令。
  6. 下载并安装更新。
  7. 更新状态通过 IoT 中心返回到 Device Update。