针对 Azure IoT 中心设备管理,使用适用于 Azure CLI 的 IoT 扩展
在本文介绍如何在开发计算机上通过各种管理选项使用适用于 Azure CLI 的 IoT 扩展。 适用于 Azure CLI 的 IoT 扩展是一个开放源代码 IoT 扩展,它增强了 Azure CLI 的功能。 Azure CLI 包含用于与 Azure 资源管理器和管理终结点进行交互的命令。 例如,可使用 Azure CLI 创建 Azure VM 或 IoT 中心。 CLI 扩展使 Azure 服务能够扩展 Azure CLI,从而可访问其他特定于服务的功能。 IoT 扩展为 IoT 开发人员提供了针对所有 IoT 中心、IoT Edge 和 IoT 中心设备预配服务功能的命令行访问权限。
管理选项 | 任务 |
---|---|
直接方法 | 让设备执行操作,如开始或停止发送消息或重新启动设备。 |
孪生所需属性 | 让设备进入特定状态,例如将 LED 设置为绿色,或将遥测发送间隔设置为 30 分钟。 |
孪生报告属性 | 获取报告的设备状态。 例如,设备报告 LED 现在正在闪烁。 |
孪生标记 | 将设备特定的元数据存储在云中。 例如,存储在自动售货机的部署位置。 |
设备孪生查询 | 查询所有设备孪生以检索符合任意条件的设备孪生,例如确定可供使用的设备。 |
有关这些选项的差异和使用指导的更详细说明,请参阅设备到云通信指南和云到设备通信指南。
设备孪生是存储设备状态信息(元数据、配置和条件)的 JSON 文档。 IoT 中心为连接到它的每台设备保留一个设备孪生。 有关设备孪生的详细信息,请参阅设备孪生入门。
注意
在开始本教程前,请完成 Raspberry Pi 联机模拟器教程或其中一个设备教程。 例如,可转到将 Raspberry Pi 与 Node.js 配合使用。 在这些文章中,你将设置 Azure IoT 设备和 IoT 中心,并部署一个在设备上运行的示例应用程序。 该应用程序会将收集的传感器数据发送到 IoT 中心。
注意
本文使用最新版本的 Azure IoT 扩展(称为 azure-iot
)。 旧版本称为 azure-cli-iot-ext
。只应同时安装有一个版本。 可以使用命令 az extension list
来验证当前安装的扩展。
使用 az extension remove --name azure-cli-iot-ext
可删除扩展的旧版本。
使用 az extension add --name azure-iot
可添加扩展的新版本。
若要查看已安装了哪些扩展,请使用 az extension list
。
注意
本文所述的功能只能用于 IoT 中心的标准层。 有关 IoT 中心基本层和标准/免费层的详细信息,请参阅选择适合你的解决方案的 IoT 中心层。
先决条件
请完成 Raspberry Pi 联机模拟器教程或其中一个设备教程。 例如,可转到将 Raspberry Pi 与 Node.js 配合使用教程或发送遥测快速入门中的一个教程。 这些文章阐述下列要求:
- 一个有效的 Azure 订阅。
- 已在订阅中创建一个 Azure IoT 中心。
- 一个可向 Azure IoT 中心发送消息的客户端应用程序。
在学习本教程期间,确保设备与客户端应用程序均处于运行状态。
Azure CLI。 如需进行安装,请参阅安装 Azure CLI。 Azure CLI 版本必须至少是 2.0.70 或更高版本。 请使用
az -version
验证版本。注意
本文使用最新版本的 Azure IoT 扩展(称为
azure-iot
)。 旧版本称为azure-cli-iot-ext
。只应同时安装有一个版本。 可以使用命令az extension list
来验证当前安装的扩展。使用
az extension remove --name azure-cli-iot-ext
可删除扩展的旧版本。使用
az extension add --name azure-iot
可添加扩展的新版本。若要查看已安装了哪些扩展,请使用
az extension list
。安装 IoT 扩展。 最简单的方法是运行
az extension add --name azure-iot
。 IoT 扩展自述文件介绍了该扩展的多种安装方法。
登录到 Azure 帐户
通过运行以下命令登录到 Azure 帐户:
az login
直接方法
az iot hub invoke-device-method --device-id <your device id> \
--hub-name <your hub name> \
--method-name <the method name> \
--method-payload <the method payload>
设备孪生所需属性
通过运行以下命令将所需属性间隔设置为 3000:
az iot hub device-twin update -n <your hub name> \
-d <your device id> --set properties.desired.interval=3000
可从设备读取此属性。
设备孪生报告属性
通过运行以下命令获取报告的设备属性:
az iot hub device-twin show -n <your hub name> -d <your device id>
其中一个孪生报告属性为 $metadata.$lastUpdated,它显示设备应用上次更新其报告属性集的时间。
设备孪生标记
通过运行以下命令显示设备的标记和属性:
az iot hub device-twin show --hub-name <your hub name> --device-id <your device id>
通过运行以下命令向设备添加字段角色 = 温度和湿度:
az iot hub device-twin update \
--hub-name <your hub name> \
--device-id <your device id> \
--set tags='{"role":"temperature&humidity"}'
设备孪生查询
通过运行以下命令查询角色标记 =“温度和湿度”的设备:
az iot hub query --hub-name <your hub name> \
--query-command "SELECT * FROM devices WHERE tags.role = 'temperature&humidity'"
通过运行以下命令查询除角色标记 =“温度和湿度”的设备以外的所有设备:
az iot hub query --hub-name <your hub name> \
--query-command "SELECT * FROM devices WHERE tags.role != 'temperature&humidity'"
后续步骤
现在,已了解如何监视设备到云的消息,以及在 IoT 设备与 Azure IoT 中心之间发送云到设备的消息。
若要继续了解 Azure IoT 中心入门知识并浏览所有扩展的 IoT 方案,请参阅: