首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

理解设备标识(Device Identity)

在的设计中,针对设备和模块有一个概念是, 即设备或者模块的标识(), 在任何设备或者模块接入之前,必须先创建一个合法的, 它包含设备或者模块本身的一些基本信息:

设备或者模块的, 需要注意的是它是区分大小写的,因此和代表的是两个设备标识。

设备或者模块的认证方式,例如是通过对称还是证书。

设备或者模块认证的详细值,例如对称的值,证书的指纹。

设备或者模块的状态:这里的状态不是在线状态,而是指该设备或者模块是不是可用。

其他的一些基本信息,例如自动生成的或者等。

以上的这些标准信息也是存储在中,我们有一个标准的名称命名该存储:, 为了用户能够操作, 支持下述操作:

创建

更新

根据设备取回信息

删除

取得最大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));

}

运行该代码片段,即可在对应的里看到所有的设备标识导出结果。

下一节,我们来学习。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221228A00L4E00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券