如何通过解锁 50 个 亚马逊云科技 IoT 事物类型属性来提高设备可发现性

作者: Ankush Sharma | 202

简介

如果您正在使用或计划使用 亚马逊云科技 IoT Core 来管理物联网 (IoT) 设备群,并想知道如何根据其身份和能力搜索和发现特定设备或一组设备,那么使用 亚马逊云科技 IoT 事物类型的属性是简化设备发现的推荐方法之一。

“事物” 是 亚马逊云科技 IoT Core 中支持物联网的设备等实体的逻辑名称。在配置事物时,您可以附加可搜索的属性,以便更轻松地在 亚马逊云科技 IoT 注册表中进行识别和搜索。

为什么有人想从 亚马逊云科技 IoT 注册表中搜索内容?为了回答这个问题,让我们以联网照明的用例为例,照明即服务提供商 (LaaS) 或其客户(通过自助服务门户)需要从其照明安装基础上确定有多少属于特定的产品类型、型号、瓦数、亮度、颜色和生产批次。

亚马逊云科技 IoT Core 限制仅向事物附加 3 个可搜索的属性,如果您需要根据其他属性发现设备,这可能还不够。在这篇博客文章中,我们将展示如何结合使用亚马逊云科技 IoT Core 事物类型 和亚马逊云科技 IoT Device Management 机群索引 来缓解这一挑战 。

借助舰队索引,舰队管理员可以组织、调查设备群并对其进行故障排除。他们可以查询一组设备,并根据设备属性的不同组合(包括状态、连接和设备违规)汇总设备记录的统计信息。例如,您可以查询信息,例如安装在某个位置的特定型号的灯泡当前有多少已断开连接且正在运行旧版本的固件。

先决条件

这篇博客文章需要对 亚马逊云科技 IoT Core 的 设备预置 功能和 亚马逊云科技 Io T 设备管理 的 队列索引功能有基本的了解 。

草率排练

现在让我们看看如何向事物添加不可搜索的属性,以及如何使用队列索引进行搜索,即使在使用不可搜索的属性时也是如此。

让我们预置一个 “myFirstThing” 的东西,并为其附加可搜索的属性。正如你在下面的快照中所看到的,你只能附加 3 个可搜索的属性。

Provision a thing with 3 attributes

要为此事物添加更多属性,可以向该事物附加 “事物类型”。

“事物类型” 允许您存储与同一事物类型关联的所有事物共有的描述和配置信息。这简化了注册表中事物的管理。例如,您可以创建名为 “LightBulb” 的事物类型,并将灯泡的属性(例如序列号、亮度、瓦特数等)关联起来,而不是单独为每个灯泡分配属性。此外,如果您将现有事物的类型更改为 “LightBulb”,它将继承事物类型的属性,您可以为 “事物类型” 中定义的每个属性指定值。

尽管为事物分配事物类型是一项可选活动,但使用它可以解锁其他 47 个 “不可搜索的事物属性” 的新部分。通过此关联,您现在可以访问总共 50 个属性,如以下快照所示。

Attach a thing type to a thing

在这篇文章中,我们已经创建了一个具有可搜索属性(例如制造商、序列号和瓦特数)的 “LightBulb” 事物类型,并将其分配给 “myFirstThing”。我们还附上了 3 个不可搜索的属性(颜色、固件类型、亮度),如以下快照所示。

View searchable and non-searchable attributes

现在,让我们尝试使用 亚马逊云科技 CLI 中的 “列出事物” 命令来搜索内容。我们可以看到,使用 “可搜索” 属性进行搜索时,该命令会返回匹配的内容 “LightBulb_1”。

aws iot list-things --attribute-name "wattage" --attribute-value '40'

{

    "things": [

        {

            "thingName": "LightBulb_1",

            "thingTypeName": "LightBulb",

            "thingArn": "arn:aws:iot:ap-south-1:************:thing/LightBulb_1",

            "attributes": {

                "Color": "White",

                "Firmware_Type_Version": "Smart_LED.1.0",

                "Luminosity": "100",

                "manufacturer": "xyz_corp",

                "serialnumber": "123",

                "wattage": "40"

            },

            "version": 5

        }

    ]

}

但是,使用 “不可搜索” 的属性进行搜索时,该命令不返回任何内容,因为通过事物类型添加的属性被归类为不可搜索。

aws iot list-things --attribute-name "Color" --attribute-value 'White'


{
    "things": []
}

这就是 亚马逊云科技 IoT Device Management 队列索引功能的帮助之处,它使您即使在 “不可搜索” 的事物属性上也可以运行搜索查询。

使用 亚马逊云科技 IoT Device Management 机群索引,您可以从以下来源索引、搜索和汇总您的设备数据:亚马逊云科技 IoT 注册表、亚马逊云科技 IoT Device Shadow、亚马逊云科技 IoT 连接和 亚马逊云科技 IoT Device Defender 违规行为。

尽管舰队索引功能将上述功能作为其主要功能,但在这篇博客文章中,我们将仅关注基于事物类型属性的索引和搜索。

现在,让我们使用 亚马逊云科技 IoT 控制台启用队列索引(如果已启用,请跳过此步骤),但也可以从 CLI 中启用。 从左侧面板中选择 “ 设置 ”,向下滚动到 “ 舰队索引 ”, 然后选择 “ 管理索引 ” ,如下所示:

Fleet indexing view

在管理舰队索引屏幕上,切换开关以激活舰队索引,如下所示,然后选择屏幕 底部的 更新 以保存设置。

Activate fleet indexing

上一个屏幕上显示的其他复选框允许根据设备影子、连接状态和 Device Defender 违规行为进行索引和搜索查询,这些超出了本文的范围,因此此处未选中。

启用舰队索引后, 从 亚马逊云科技 IoT Manage Things 控制台中选择 高级搜索 ,如以下快照所示。

Advanced search screen

使用搜索框搜索不可搜索的属性,例如,值为 “白色” 的 “颜色”,您将看到具有匹配属性值的内容将作为搜索结果显示在屏幕底部,如下所示。

View Search Results

您还可以使用 亚马逊云科技 CLI 对值为 “白色” 的不可搜索属性 “颜色” 的设备运行类似的队列索引查询,其中返回具有匹配属性值的事物,如下所示。

aws iot search-index –query-string ‘attributes.color=White’


{
    "things": [
        {
            "thingName": "LightBulb_1",
            "thingId": "******************************",
            "thingTypeName": "LightBulb",
            "attributes": {
                "Color": "White",
                "Firmware_Type_Version": "Smart_LED.1.0",
                "Luminosity": "100",
                "manufacturer": "xyz_corp",
                "serialnumber": "123",
                "wattage": "40"
            }
        }
    ]
}

但是,还需要注意的是,亚马逊云科技 IoT Device Management 机群索引仅用于管理目的,允许管理员对设备队列进行组织、调查和故障排除,只能用于此类活动。

舰队索引和搜索功能由执行的索引更新和搜索查询的数量来衡量。请参阅定 页面了解更多详情,也可以在 此处 查看其限额和配额 。

结论

在这篇文章中,我向您展示了如何使用 亚马逊云科技 IoT 事物类型和 亚马逊云科技 IoT Device Management 队列索引来增强设备的可发现性。事物类型使您能够为事物附加其他属性(不可搜索),尽管这些属性不可搜索,但您可以使用队列索引功能根据不可搜索的属性进行搜索,从而可以方便地从庞大的物联网设备队列中筛选和查找这些设备。

如需更多 亚马逊云科技 IoT Core 学习资源,请访问该 网站

Ankush Sharma

Ankush Sharma

Ankush Sharma 是总部位于印度德里的 亚马逊云科技 印度私人有限公司的解决方案架构师。他是Enterprise Greenfield团队的一员,利用亚马逊云科技服务的广度和深度,帮助客户在亚马逊云科技上迁移、设计和运行安全且可扩展的解决方案,以实现预期的业务成果。Ankush 在 IT 行业拥有超过 17 年的经验,不工作时,他喜欢与家人共度时光和读书。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。