设备更新模块代理可以与其他系统进程及连接到您 IoT 中心的 IoT Edge 模块 一起作为同一逻辑设备的一部分运行。 本部分介绍如何将设备更新代理预配为模块标识。
公共预览版本更新时对设备更新代理的更改
我们在最新的公共预览版刷新代理(版本 0.8.0)中向设备更新代理添加了许多新功能。 有关详细信息 ,请参阅新功能列表 。
如果使用设备更新代理版本 0.6.0 或 0.7.0,请迁移到最新的代理版本 0.8.0。 请查看 公共预览版刷新代理以了解更改内容及如何升级
可以在 IoT 设备孪生的“设备属性”部分中检查设备更新代理的已安装版本和传递优化代理。 详细了解 ADU 核心接口下的设备属性。
模块标识与设备标识
在 IoT 中心的每个设备标识下,最多可以创建 50 个模块标识。 每个模块标识都会隐式生成一个模块双胞胎。 在设备端,可以使用 IoT 中心设备 SDK 创建模块,其中每个模块与 IoT 中心建立独立连接。 模块标识和模块孪生提供与设备标识和设备孪生类似的功能,但粒度更精细。 详细了解 IoT 中心 中的模块标识
如果要从设备级别代理迁移到将代理添加为设备上的模块标识,请删除通过设备孪生通信的旧代理。 将设备更新代理预配为模块标识时,设备与设备更新服务之间的所有通信都会通过模块孪生进行,因此在创建 组时请记住标记设备的模块孪生,并且必须在模块孪生上发生所有 通信。
支持设备更新
当前设备更新支持以下 IoT 设备的空中更新类型:
Linux 设备(IoT Edge 和非 IoT Edge 设备):
受约束的设备:
- AzureRTOS 设备更新代理示例:Azure 实时操作系统的 Azure IoT 中心设备更新教程
断开连接的设备:
先决条件
如果要为 IoT 设备/IoT Edge 设备设置基于包的更新,请按照以下步骤操作,将 packages.microsoft.com 添加到您的计算机存储库中:
登录到要在其中安装设备更新代理的计算机或 IoT 设备。
打开终端窗口。
安装与您的设备的操作系统匹配的存储库配置。
curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
将生成的列表复制到 sources.list.d 目录。
sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
安装 Microsoft GPG 公钥。
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
如何将设备更新代理预配为模块标识
本部分介绍如何将“设备更新代理”预配为模块标识
- 已启用 IoT Edge 的设备,或
- 非边缘 IoT 设备,或
- 其他 IoT 设备。
若要检查设备上是否启用了 IoT Edge,请参阅 IoT Edge 安装说明。
请根据所管理的 IoT 设备类型,选择以下任意或所有部分来添加设备更新代理。
在启用了 IoT Edge 的设备上
按照以下说明在启用了 IoT Edge 的 设备上预配设备更新代理。
按照说明 手动配置一个 Linux IoT Edge 设备。
安装设备更新映像更新代理。
我们在 此处 的存储库中提供了示例映像。 swUpdate 文件是基本映像,可以刷写到 Raspberry Pi B3+ 板上。 .gz文件是通过 IoT 中心设备更新导入的更新。 有关示例,请参阅 如何将镜像烧录到 IoT Hub 设备。
安装 Device Update 包更新代理。
对于来自 packages.miscrosoft.com 的最新代理版本:更新设备上的包列表,并使用以下命令安装 Device Update 代理包及其依赖项:
sudo apt-get update
sudo apt-get install deviceupdate-agent deliveryoptimization-plugin-apt
对于任何“rc”,即从 Artifacts 发布候选代理版本:将.deb文件下载到要安装设备更新代理的计算机,然后:
sudo apt-get install -y ./"<PATH TO FILE>"/"<.DEB FILE NAME>"
现在可以在 IoT Edge 设备上启动设备更新代理。
在未安装 IoT Edge 的 Iot Linux 设备上
按照以下说明在 IoT Linux 设备上预配设备更新代理。
按照 安装 Azure IoT 标识服务中的说明,安装 IoT 标识服务,将最新版本添加到 IoT 设备。
按照配置 Azure IoT 标识服务中的指示配置 IoT 标识服务。
最后安装设备更新代理。 我们在 此处的 Assets 中提供示例图像,swUpdate 文件是可以刷写到 Raspberry Pi B3+ 开发板的基础图像,.gz 文件是您通过 IoT 中心的设备更新进行导入的更新文件。 请参阅 如何将映像刷写到 IoT 中心设备的示例。
安装设备更新代理后,需要运行以下命令来编辑设备更新的配置文件。
sudo nano /etc/adu/du-config.json
对于将使用 IoT 标识服务进行预配的代理,请将 connectionType 更改为“AIS”。 ConnectionData 字段必须是空字符串
现在可以在 IoT 设备上启动设备更新代理。
其他 IoT 设备
可以在无需 IoT 身份服务的情况下配置设备更新代理,以便进行测试或用于受限设备。 按照以下步骤使用连接字符串(来自模块或设备)预配设备更新代理。
我们在 此处 的存储库中提供了示例映像。 swUpdate 文件是基本映像,可以刷写到 Raspberry Pi B3+ 板上。 .gz文件是通过 IoT 中心设备更新导入的更新。 有关示例,请参阅 如何将镜像烧录到 IoT Hub 设备。
登录到计算机或 IoT Edge 设备/IoT 设备。
打开终端窗口。
将连接字符串添加到 Device Update 配置文件:
在终端窗口中输入以下内容:
- 在 Ubuntu 的代理中 使用:sudo nano /etc/adu/du-config.json
- 对于 Yocto 参考图像 使用:sudo nano /adu/du-config.json
复制主连接字符串
- 如果将设备更新代理配置为模块,请复制模块的主连接字符串。
- 否则,请复制设备的主连接字符串。
在 du-config.json 文件中,将复制的主连接字符串输入到“connectionData”字段的值。 然后保存并关闭该文件。
现在,你已准备好在 IoT 设备上启动设备更新代理。
如何启动设备更新代理
本部分介绍如何启动和验证设备更新代理作为在 IoT 设备上成功运行的模块标识。
登录到安装了设备更新代理的计算机或设备。
打开终端窗口,然后输入以下命令。
sudo systemctl restart adu-agent
可以使用以下命令检查代理的状态。 如果看到任何问题,请参阅此 故障排除指南。
sudo systemctl status adu-agent
你应该能够看到状态正常。
在 IoT 中心门户中,转到 IoT 设备或 IoT Edge 设备,查找使用设备更新代理配置的设备。 你将看到设备更新代理作为模块运行。 例如:
如何生成和运行设备更新代理
还可以生成和修改自己的客户设备更新代理。
代理成功生成后,便是时候 运行 代理。
现在,进行将代理集成到图像中所需的更改。 了解如何 修改设备更新代理 以获取指导。
疑难解答指南
如果遇到问题,请查看 IoT 中心的设备更新 故障排除指南,以帮助解决可能出现的问题,并收集提供给 Microsoft 所需的信息。
后续步骤
可以使用以下教程来简单演示 IoT 中心的设备更新: