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

预配 Azure Device Update for IoT Hub 代理

Device Update 模块代理可以与其他系统进程,以及连接到 IoT 中心作为同一逻辑设备的一部分的 IoT Edge 模块一起运行。 本文介绍如何将 Device Update 代理预配为模块标识。

注意

如果使用 Device Update 代理,请确保使用的是 1.0.0 正式版 (GA)。 你可在 IoT 设备孪生属性部分查看 Device Update 代理和传递优化代理的已安装版本。 有关详细信息,请参阅将设备和组迁移到最新的 Device Update 版本

模块标识与设备标识

最多可以在每个 Azure IoT 中心设备标识下创建 50 个模块标识。 每个模块标识都隐式生成模块标识孪生。 在设备端,可以使用 IoT 中心设备 SDK 创建模块,其中每个模块与 IoT 中心单独建立连接。

模块标识和模块标识孪生提供的功能与设备标识和设备孪生相似,但前者的粒度更细。 有关详细信息,请参阅了解并在 IoT 中心内使用模块孪生

将 Device Update 代理预配为模块标识时,设备和 Device Update 服务之间的所有通信都必须通过模块孪生进行。 在创建设备组时,请记住标记设备的模块孪生。 如果从设备级别代理迁移到将代理添加为模块标识,请删除通过设备孪生通信的较旧代理。

支持的更新类型

设备更新支持以下 IoT 设备无线更新类型:

准备包更新

要为基于包的更新设置 IoT 设备或 IoT Edge 设备,请通过执行以下步骤将 packages.microsoft.com 添加到计算机的存储库:

  1. 在要安装 Device Update 代理的计算机或 IoT 设备上打开终端窗口。

  2. 安装与设备操作系统匹配的存储库配置,例如:

    curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
    
  3. 将生成的列表复制到 sources.list.d 目录

    sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
    
  4. 安装 Microsoft GPG 公钥。

    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    
    sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
    

预配 Device Update 代理

可以在启用了 IoT Edge 的设备或非 Edge IoT 设备上将 Device Update 代理预配为模块标识。 若要检查设备上是否启用了 IoT Edge,请参阅查看已注册设备并检索预配信息

可以从“发布”页上的“资产”部分下载要使用的示例映像。 在 Tutorial_RaspberryPi3.zip 中,swUpdate 文件是可刷写到 Raspberry Pi B3+ 板上的基础映像。 .gz 文件是可以通过 Device Update 导入的更新。 有关详细信息,请参阅使用 Raspberry Pi 映像的 Azure Device Update for IoT Hub

在启用了 IoT Edge 的设备上

按照这些说明在启用了 IoT Edge 的设备上预配 Device Update 代理:

  1. 按照说明手动预配单个 Linux IoT Edge 设备

  2. 通过运行以下命令安装 Device Update 映像更新代理:

    sudo apt-get install deviceupdate-agent
    
  3. 安装 Device Update 包更新代理。

    • 如需从 packages.microsoft.com 获取最新代理版本,请更新设备上的包列表,然后使用以下方法安装 Device Update 代理包及其依赖项:

      sudo apt-get update
      
      sudo apt-get install deviceupdate-agent
      
    • 如需获取候选发布 (rc) 代理版本,请将发布中的 .dep 文件下载到要安装 Device Update 代理的计算机上,然后运行以下命令

      sudo apt-get install -y ./"<PATH TO FILE>"/"<.DEB FILE NAME>"
      
    • 如果要设置适用于离线设备方案的 Microsoft 联网缓存 (MCC),请按如下步骤安装传递优化 APT 插件:

      sudo apt-get install deliveryoptimization-plugin-apt
      

在非启用 IoT Edge 的设备上

按照这些说明在未安装 IoT Edge 的 Linux IoT 设备上预配 Device Update 代理。

  1. 按照安装 Azure IoT 标识服务中的指示安装最新版本的 IoT 标识服务。

  2. 按照配置 Azure IoT 标识服务中的指示配置 IoT 标识服务。

  3. 通过运行以下命令安装 Device Update 代理:

    sudo apt-get install deviceupdate-agent
    

注意

如果 IoT 设备无法运行 IoT 标识服务或 IoT Edge(捆绑 IoT 标识服务),则仍可通过使用连接字符串来安装 Device Update 代理并对其进行配置。

配置 Device Update 代理

安装 Device Update 代理后,运行以下命令来编辑 Device Update 配置文件。

sudo nano /etc/adu/du-config.json

在 du-config.json 文件中,设置具有 Place value here 占位符的所有值。 对于使用 IoT 标识服务进行预配的代理,请将 connectionType 更改为 AIS,并将 ConnectionData 字段设置为空字符串。 如需示例,请参阅示例 du-config.json 文件内容

使用连接字符串

无需使用 IoT 标识服务即可在受约束设备上配置 Device Update 代理以进行测试。 可以使用连接字符串从模块或设备预配 Device Update 代理。

  1. 在 Azure 门户中,复制主连接字符串。 如果将 Device Update 代理配置为模块标识,请复制模块的主连接字符串。 否则,请复制设备的主连接字符串。

  2. 在安装了 Device Update 代理的计算机或 IoT 设备的终端窗口中,通过运行以下命令来编辑 Device Update 配置文件

  3. 在 du-config.json 文件中,设置具有 Place value here 占位符的所有值,然后输入复制的主连接字符串作为 connectionData 字段值。 如需示例,请参阅示例 du-config.json 文件内容

启动 Device Update 代理

启动 Device Update 代理,并验证其是否在设备上成功运行。

  1. 在安装了 Device Update 代理的计算机或 IoT 设备的终端窗口中,通过运行以下命令来重启代理:

    sudo systemctl restart deviceupdate-agent
    
  2. 请运行以下命令来检查代理状态。

    sudo systemctl status deviceupdate-agent
    

    应会看到状态OK

  3. 在 IoT 中心门户页上,转到“设备”或“IoT Edge”以查找配置的设备,并查看作为模块运行的 Device Update 代理。 例如:

    显示“已连接”状态的 Device Update 模块名称的关系图。

在代理服务器后面启用设备更新代理

运行设备更新代理的设备会发送 HTTPS 请求以与 IoT 中心进行通信。 如果已将设备连接到使用代理服务器的网络,则需要将设备更新系统服务配置为通过该服务器进行通信。

在配置设备更新之前,请确保你具有代理 URL。 代理 URL 采用以下格式: protocol://proxy_host:proxy_port。

通过运行以下命令导航到设备更新配置:

sudo systemctl edit deviceupdate-agent.service

将代理详细信息添加到配置

[Service]
Environment="https_proxy=<Proxy URL>"

重启代理以应用更改。

sudo systemctl daemon-reload
sudo systemctl restart deviceupdate-agent
sudo systemctl status deviceupdate-agent

生成和运行 Device Update 代理

还可以生成和修改自己的自定义 Device Update 代理。 按照如何生成 Device Update 代理中的说明从源生成 Device Update 代理。

成功生成代理后,请按照运行 Device Update for IoT Hub 引用代理中的说明运行该代理。 若要进行更改以便将代理合并到映像中,请按照如何修改 Device Update 代理代码进行操作。

故障排除

如果遇到问题,请查看 Device Update for IoT Hub 故障排除指南,以帮助解决问题并收集要提供给 Microsoft 的必要信息。