Azure Digital Twins入门 - 使用Azure Cli的IoT扩展管理
分类: Azure物联网 ◆ 标签: #Azure # #Digitial Twin ◆ 发布于: 2023-06-15 20:27:02

前一节我们学习了如何使用Azure Digital Twins Explorer
工具来创建和管理模型以及digital tiws
, 我们本节使用Azure Cli
来完成同样的工作。
我们整个演示使用如下的步骤:
- 确定数字化的目标清单
- 制作数字化模型
- 使用
Azure Digital Twins Explorer
工具来创建Digital Twin
、Relatioonship
关系映射,Twin Graph
- 使用
Azure Cli IoT
扩展来创建Digital Twin
,Relationship
关系映射,Twin Graph
- 使用
.Net SDK
来创建Digital Twin
,RelationShip
关系映射,Twin Graph
- 链接
Azure Digital Twins Explorer
到Azure IoT Hub
, 映射实际的IoT
设备 - 结合
Azure IoT Hub Device Provisioning Service
自动管理设备 - 结合
Event hub
和Azure Function
链接输出数据。
本节主要学习如何使用Azure Cli
的IoT
扩展工具来上传我们之前创建的数字模型,创建Digital Twin
, Relationship
关系映射,Twin Graph
。
关于如何安装Azure Cli
和基本的配置,您可以参考文档:<>
如果你还没有创建数字模型,您可以参考链接创建我们需要的数字模型:<>
请先确定我们目前已经拥有了四个数字模型文件,以及Azure Cli
已经登录,模型文件列表如下:
FactoryModel.json
PoolModel.json
PHValueSensor.json
TemperatorSensor.json
准备Azure Cli
的环境
您可以通过如下的命令快速的准备好Azure Cli
的环境:
$ az cloud list -o table IsActive Name Profile ---------- ----------------- --------- False AzureCloud latest True AzureChinaCloud latest False AzureUSGovernment latest False AzureGermanCloud latest $ az cloud set --name AzureChinaCloud $ az login $ az account list -o table $ az account set --subscription <Your Subscription id>
至此您应该已经拥有了Azure Cli
的环境了。
开始上传数字模型
开始上传之前,我们先查看一下我们的Azure Digital Twins
实例:
az provider register --namespace 'Microsoft.DigitalTwins' az dt show --dt-name <Azure-Digital-Twins-instance-name>
这样您就可以看到基本的信息了。
注意
经过测试发现Azure Cli
目前在Azure China
这边还是会报如下错误:(InvalidResourceType) The resource type 'digitalTwinsInstances' could not be found in the namespace 'Microsoft.DigitalTwins' for api version '2021-06-30-preview'. The supported api-versions are '2020-12-01,2020-10-31,2020-03-01-preview'.
因此
Azure Cli
在Azure China
这边还是有些问题。
使用如下的命令上传数字模型:
az dt model create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --models <path-to-Room.json>
使用上述的命令您可以将四个数字模型文件都一一上传。
上传之后为了验证是否上传成功,可以使用如下的命令查看:
az dt model list --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --definition
创建Digital Twin
和关系映射
使用如下的命令来根据数字模型创建Digital Twins
和关系映射:
az dt twin create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --dtmi "dtmi:example:factory;2" --twin-id factory-1 --properties '{"PropertiesName":"Value", ...}'
根据如下的表格,我们使用相同的命令创建完所有的digital twin
:
该企业名下有两个工厂,每个工程有两个养殖池,每个养殖池里有两种探测器。
ID | factory Name | City | MyCategory | PoolNumbers |
---|---|---|---|---|
factory-id-1 | The First Factory | ShangHai | Test1 | 2 |
factory-id-2 | The Second Factory | SuZhou | Test2 | 2 |
养殖池
ID | Pool Name | MyCategory | Which Factory | Number |
---|---|---|---|---|
pool-1 | Pool-1 | test-pool-1 | factory-1 | 130 |
pool-2 | Pool-2 | test-pool-2 | factory-1 | 150 |
pool-3 | Pool-3 | test-pool-3 | factory-2 | 200 |
pool-4 | Pool-4 | test-pool-4 | factory-2 | 210 |
PH
值探测器,每个养殖池一个
ID | Name | Whic Pool | PHValue |
---|---|---|---|
PHValueSensor-1 | PHValueSensor-1 | pool-1 | N/A |
PHValueSensor-2 | PHValueSensor-2 | pool-2 | N/A |
PHValueSensor-3 | PHValueSensor-3 | pool-3 | N/A |
PHValueSensor-4 | PHValueSensor-4 | pool-4 | N/A |
水温探测器,每个养殖池一个:
ID | Name | Which Pool | Temperator |
---|---|---|---|
TemperatorSensor-1 | TemperatorSensor-1 | pool-1 | N/A |
TemperatorSensor-2 | TemperatorSensor-2 | pool-2 | N/A |
TemperatorSensor-3 | TemperatorSensor-3 | pool-3 | N/A |
TemperatorSensor-4 | TemperatorSensor-4 | pool-4 | N/A |
通过如下的命令来创建关系:
az dt twin relationship create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --relationship-id relationship0 --relationship contains --twin-id factory-1 --target pool-1
使用上述命令创建完成后,您可以直接使用Azure Digital Twin Explorer
来查看效果:
查询
可以使用如下的命令来查询:
az dt twin query --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --query-command "SELECT * FROM DIGITALTWINS"
清理资源
您可以直接使用ARM
的命令:
az group delete --name <your-resource-group>
当然您还可以使用特定的命令:
az dt twin relationship delete、az dt twin delete、az dt model delete
支持本节演示结束了。