在的设计中,针对设备和模块有一个概念是, 即设备或者模块的标识(), 在任何设备或者模块接入之前,必须先创建一个合法的, 它包含设备或者模块本身的一些基本信息:
设备或者模块的, 需要注意的是它是区分大小写的,因此和代表的是两个设备标识。
设备或者模块的认证方式,例如是通过对称还是证书。
设备或者模块认证的详细值,例如对称的值,证书的指纹。
设备或者模块的状态:这里的状态不是在线状态,而是指该设备或者模块是不是可用。
其他的一些基本信息,例如自动生成的或者等。
以上的这些标准信息也是存储在中,我们有一个标准的名称命名该存储:, 为了用户能够操作, 支持下述操作:
创建
更新
根据设备取回信息
删除
取得最大1000个设备或者模块: 注意是最大1000个,不是所有的。
导出所有的到
从里导入所有的设备
如上是支持的所有的动作,用户可以通过提供的或者提供的进行操作。
长什么样?
看上去是一个文档,如下是一个实例:
{
"id": "testdevice1",
"eTag": "Nzk5NzE1NDQ5",
"status": "enabled",
"authentication": {
"symmetricKey": {
"primaryKey": "",
"secondaryKey": ""
},
"x509Thumbprint": {
"primaryThumbprint": null,
"secondaryThumbprint": null
},
"type": "sas"
},
"twinETag": "AAAAAAAAAAM=",
"tags": {},
"properties": {
"desired": {
"testvar1": "testvalue1",
"testvar2": "testvalue2"
},
"reported": {
"testvar1": "testvalue1",
"testvar2": "testvalue2"
}
},
"capabilities": {
"iotEdge": false
}
}
需要注意的是在的数据中从开始到结束都是是的数据,而这之前的才是数据。
根据官方的文档,一个可以有如下的一些字段:
: 指定设备或者模块的, 该区分大小写。
: 由自动生成,对用户是只读的属性,另外需要注意的是,可以利用实现乐观锁。
: 代表该设备或者模块的状态。
: 代表该设备的认证方法
以上几项是一个设备或者模块必选的属性,还有一些其他的属性属于可选的项目:
里记录的标识信息主要还是用于设备或者模块的接入,如果需要作为应用对设备或者模块赋予更多的数据能力,例如状态信息等等,还提供了另外一个概念, 我们下一节来学习它。
监控设备或者模块的变化
指当我们创建了新的或者删除了一个旧的, 关于这个部分我们可以采用如下的步骤来监控。
登录到 , 找到的资源,从左侧菜单里找到, 如下图:
点击, 如下图,可以选择事件:
选择事件的输出:
通过如上的步骤即可监控的变化。
导出所有的设备标识
根据我们之前的提示,通过代码列出最多1000个设备的标识,如果想全部导出自己的设备标识并备份,可以使用的方法直接导出设备的标识到。
我们可以快速的测试一下:
创建项目:
使用打开项目之后,编辑, 代码非常简单:
using Microsoft.Azure.Devices;
RegistryManager registryManager = RegistryManager.CreateFromConnectionString(
@"您的Azure IoT Hub连接字符串"
);
JobProperties exportJob = await registryManager.ExportDevicesAsync(
@"您的Azure Storage Blob的SAS Key连接字符串,记得要给予该字符串足够的权限(读写,list等等)",
false
);
while(true)
{
exportJob = await registryManager.GetJobAsync(exportJob.JobId);
if (exportJob.Status == JobStatus.Completed ||
exportJob.Status == JobStatus.Failed ||
exportJob.Status == JobStatus.Cancelled)
{
// Job has finished executing
break;
}
await Task.Delay(TimeSpan.FromSeconds(5));
}
运行该代码片段,即可在对应的里看到所有的设备标识导出结果。
下一节,我们来学习。
领取专属 10元无门槛券
私享最新 技术干货