本文介绍如何在开发计算机上将适用于 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 联机模拟器 教程或设备教程之一。 例如,可以使用 node.js转到 Raspberry Pi 。 在这些文章中,你将设置 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 with 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>
通过运行以下命令,将字段 role = 温度&湿度 添加到设备中:
az iot hub device-twin update \
--hub-name <your hub name> \
--device-id <your device id> \
--set tags='{"role":"temperature&humidity"}'
设备孪生查询
运行以下命令,查询具有角色标签 = “temperature&humidity” 的设备:
az iot hub query --hub-name <your hub name> \
--query-command "SELECT * FROM devices WHERE tags.role = 'temperature&humidity'"
运行以下命令,查询除具有角色标记 = “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 方案,请参阅以下内容: