你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
使用 Device Update for Azure IoT Hub 部署更新
本文内容
了解如何使用 Device Update for Azure IoT Hub 将更新部署到 IoT 设备。
先决条件
Azure CLI 环境:
提示
本文中的 Azure CLI 命令使用反斜杠 \
字符进行续行,以便更轻松地读取命令参数。 此语法适用于 Bash 环境。 如果在 PowerShell 中运行这些命令,请将每个反斜杠替换为反引号 ```,或将其完全删除。
部署更新
在 Azure 门户 中导航到 IoT 中心。
从导航菜单中选择“更新”,打开 IoT 中心实例的“Device Update”页面。
选择页面顶部的“组和部署”选项卡。 有关详细信息,请参阅设备组 。
查看更新合规性图表和组列表。 应该能查看基于标签的组或默认组可用的更新。 可能需要刷新一次。 有关详细信息,请参阅 Device Update 合规性 。
选择“一个或多个可用更新”旁边的“部署”,并确认导入时添加的描述性标签存在且显示正确。
确认选择了正确的组作为目标组,然后选择“部署”。
若要启动部署,请前往“当前部署”选项卡。从“可用更新”部分选择所需更新旁边的“部署”链接。 给定组的最佳可用更新将以“最佳”高亮表示。
计划你的部署,以便立即开始部署或在将来开始部署。
提示
默认情况下,“开始日期和时间”设置为“立即”。 如果你希望部署更晚开始,请务必选择其他日期和时间。
根据需要创建自动回滚策略。 然后选择“创建”。
部署详细信息中的“状态”变为“活动”。 已部署的更新标有“(正在部署)”。
查看合规性图表以了解更新是否现在正在进行。
成功更新设备后,你会看到合规性图表和部署详细信息也会更新,以反映相同的情况。
az iot du device group list
用于验证最适用于组的更新。 该命令使用以下自变量:
--account
:设备更新帐户名称。
--instance
:Device Update 实例名称。
--group-id
:此部署的目标设备组 ID。 此 ID 是 ADUGroup 标记的值,如果设备没有标记,则为 $default
。
--best-updates
:此标志指示命令应提取最适用于设备组的更新,包括有多少个设备需要其中的每个更新。
“--resource-group -g”:设备更新帐户资源组名称。
“--update-compliance”:此标志指示命令应提取设备组更新合规性信息,例如有多少设备处于最新更新状态,有多少设备需要新更新,以及有多少设备正在接收新更新。
az iot du device group list \
--account <Device Update account name> \
--instance <Device Update instance name>\
--gid <device group id>\
--best-updates {false, true}
使用 az iot du device deployment create 为设备组创建部署。
device deployment create
命令使用以下自变量:
--account
:设备更新帐户名称。
--instance
:Device Update 实例名称。
--group-id
:此部署的目标设备组 ID。 此 ID 是 ADUGroup 标记的值,如果设备没有标记,则为 $default
。
--deployment-id
:用于标识此部署的 ID。
--update-name
、--update-provider
和 --update-version
:这三个参数定义 updateId 对象,该对象是你在此部署中所使用的更新的唯一标识符。
az iot du device deployment create \
--account <Device Update account name> \
--instance <Device Update instance name> \
--group-id <device group id> \
--deployment-id <deployment id> \
--update-name <update name> \
--update-provider <update provider> \
--update-version <update version>
可以通过可选参数配置部署。 有关完整列表,请参阅可选参数
如果要创建自动回滚策略,请添加以下参数:
--failed-count
:部署中将触发回滚的失败设备数。
--failed-percentage
:部署中将触发回滚的失败设备的百分比。
--rollback-update-name
、--rollback-update-provider
、--rollback-update-version
:启动回滚时设备组将使用的更新的 updateID。
az iot du device deployment create \
--account <Device Update account name> \
--instance <Device Update instance name> \
--group-id <device group id> \
--deployment-id <deployment id> \
--update-name <update name> \
--update-provider <update provider> \
--update-version <update version> \
--failed-count 10 \
--failed-percentage 5 \
--rollback-update-name <rollback update name> \
--rollback-update-provider <rollback update provider> \
--rollback-update-version <rollback update version>
如果希望在将来开始部署,请使用 --start-time
参数提供部署的目标日期/时间。
az iot du device deployment create \
--account <Device Update account name> \
--instance <Device Update instance name> \
--group-id <device group id> \
--deployment-id <deployment id> \
--update-name <update name> \
--update-provider <update provider> \
--update-version <update version> \
--start-time "2022-12-20T01:00:00"
监视更新部署
选择部署到的组,然后转到“当前更新”或“部署历史记录”选项卡,确认部署正在进行
选择你创建的部署旁边的“详细信息”。 可在此处查看部署详细信息、更新详细信息和目标设备类详细信息。 可以选择为设备类添加易记名称。
选择“刷新”以查看最新状态详细信息。
可以转到组基本信息视图以搜索特定设备的状态,或进行筛选以查看部署失败的设备
使用 az iot du device deployment list 查看设备组的所有部署。
az iot du device deployment list \
--account <Device Update account name> \
--instance <Device Update instance name> \
--group-id <device group id>
使用 az iot du device deployment show 查看特定部署的详细信息。
az iot du device deployment show \
--account <Device Update account name> \
--instance <Device Update instance name> \
--group-id <device group ID> \
--deployment-id <deployment ID>
添加 --status
标志以返回有关部署中正在进行、已完成或失败的设备数量的信息。
az iot du device deployment show \
--account <Device Update account name> \
--instance <Device Update instance name> \
--group-id <device group ID> \
--deployment-id <deployment ID> \
--status
重试更新部署
如果部署由于某些原因而失败,可对失败的设备重试部署。
转到“组详细信息”屏幕上的“当前部署”选项卡。
选择“重试失败的设备”并对确认通知进行确认。
使用 az iot du device deployment retry 重试设备的目标子组的部署。
此命令采用 --class-id
参数,该参数由 Device Update 代理报告的模型 ID 和兼容性属性生成。
az iot du device deployment retry \
--account <Device Update account name> \
--instance <Device Update instance name> \
--deployment-id <deployment ID> \
--group-id <device group ID> \
--class-id <device class ID>
后续步骤
排查常见问题