管理机群索引 - AWS IoT Core

管理机群索引

实例集索引为您管理两种类型的索引:事物索引和事物组索引。

事物索引

为您的所有事物创建的索引称为 AWS_Things。事物索引支持以下数据源:AWS IoT注册表数据,AWS IoTDevice ShadowDATA,AWS IoT连接数据以及AWS IoT Device Defender违规数据。通过将这些数据来源添加到实例集索引配置,您可以搜索事物,查询聚合数据,并根据搜索查询创建动态事物组和实例集指标。

注册表-AWS IoT提供了注册表来帮助您管理事物。您可以将注册表数据添加到实例集索引配置,以根据事物名称、描述和其他注册表属性搜索设备。有关注册表的更多信息,请参阅如何使用注册表管理事物

影子 - AWS IoT Device Shadow 服务提供了有助于存储设备状态数据的影子。事物索引支持经典未命名影子和命名影子。要为命名影子编制索引,请激活您的命名影子设置并在事物索引配置中指定影子名称。默认情况下,每个 AWS 账户最多可以添加 10 个影子名称。要了解如何增加影子名称的数量限制,请参阅《AWS 一般参考》中的 AWS IoT Device Management 配额

要为索引添加命名影子,请执行以下操作:

  • 如果您使用 AWS IoT 控制台,请打开 Thing indexing(事物索引),选择 Add named shadows(添加命名的影子),然后通过 Named shadow selection(命名的影子选择)添加您的影子名称。

  • 如果您使用 AWS Command Line Interface(AWS CLI),请将 namedShadowIndexingMode 设置为 ON,并在 IndexingFilter 中指定影子名称。要查看 CLI 命令示例,请参阅管理事物索引

重要

AWS IoT Device Management 的 2022 年 7 月 20 日公开发行版的实例集索引与 AWS IoT Core 命名的影子和 AWS IoT Device Defender 检测违规相集成。在此 GA 版中,您可以通过指定影子名称为特定的命名影子编制索引。如果您在 2021 年 11 月 30 日至 2022 年 7 月 19 日此特征的公开预览期添加了命名影子以编制索引,我们鼓励您重新配置实例集索引设置并选择特定的影子名称,以降低索引成本并优化性能。

有关影子的更多信息,请参阅 AWS IoTDevice Shadow 服务

连接 - 设备连接数据可帮助您识别设备的连接状态。此连接数据由生命期事件驱动。当客户端连接或断开连接时,AWS IoT 向 MQTT 主题发布带消息的生命周期事件。连接或断开连接消息可以是提供连接状态详细信息的 JSON 元素的列表。有关设备连接的更多信息,请参阅生命周期事件

Device Defender 违规 - AWS IoT Device Defender 违规数据有助于根据您在安全配置文件中定义的正常行为识别设备的异常行为。安全配置文件包含一组目标设备行为。每种行为都使用一个指标来指定设备的正常行为。有关 Device Defender 违规的更多信息,请参阅 AWS IoT Device Defender 检测

有关更多信息,请参阅管理事物索引

事物组索引

AWS_ThingGroups 是包含所有事物组的索引。您可以使用此索引基于组名称、描述、属性和所有父组名称搜索事物组。

有关更多信息,请参阅管理事物组索引

托管字段

托管字段包含与事物、事物组、设备影子、设备连接和 Device Defender 违规关联的数据。AWS IoT 定义了托管字段中的数据类型。您可以在创建 AWS IoT 事物时指定每个托管式字段的值。例如,事物名称、事物组和事物描述都是托管字段。实例集索引根据您指定的索引模式为托管式字段编制索引。托管字段无法更改或显示在 customFields 中。有关更多信息,请参阅自定义字段

以下列出了用于事物索引的托管字段:

  • 注册表的托管字段

    "managedFields" : [ {name:thingId, type:String}, {name:thingName, type:String}, {name:registry.version, type:Number}, {name:registry.thingTypeName, type:String}, {name:registry.thingGroupNames, type:String}, ]
  • 经典未命名影子的托管字段

    "managedFields" : [ {name:shadow.version, type:Number}, {name:shadow.hasDelta, type:Boolean} ]
  • 命名影子的托管字段

    "managedFields" : [ {name:shadow.name.shadowName.version, type:Number}, {name:shadow.name.shadowName.hasDelta, type:Boolean} ]
  • 事物连接的托管字段

    "managedFields" : [ {name:connectivity.timestamp, type:Number}, {name:connectivity.version, type:Number}, {name:connectivity.connected, type:Boolean}, {name:connectivity.disconnectReason, type:String} ]
  • Device Defender 的托管字段

    "managedFields" : [ {name:deviceDefender.violationCount, type:Number}, {name:deviceDefender.securityprofile.behaviorname.metricName, type:String}, {name:deviceDefender.securityprofile.behaviorname.lastViolationTime, type:Number}, {name:deviceDefender.securityprofile.behaviorname.lastViolationValue, type:String}, {name:deviceDefender.securityprofile.behaviorname.inViolation, type:Boolean} ]
  • 事物组的托管字段

    "managedFields" : [ {name:description, type:String}, {name:parentGroupNames, type:String}, {name:thingGroupId, type:String}, {name:thingGroupName, type:String}, {name:version, type:Number}, ]

下表列出了不可搜索的托管字段。

数据来源 无法搜索的托管字段
注册表 registry.version
未命名的影子 shadow.version
命名的影子 shadow.name.*.version
Device Defender deviceDefender.version
事物组 version

自定义字段

您可以通过创建自定义字段来对事物属性、Device Shadow 数据和 Device Defender 违规数据进行汇总来进行索引。customFields 属性是字段名称和数据类型对的列表。您可以根据数据类型执行聚合查询。您选择的索引模式会影响可以在 customFields 中指定的字段。例如,如果您指定 REGISTRY 索引模式,则无法从事物影子中指定字段。您可以使用更新索引配置 CLI 命令创建或更新自定义字段的(请参阅更新索引配置示例中的示例命令)。

  • 自定义字段名称

事物和事物组属性的自定义字段名称以 attributes. 开头,后面是属性名称。如果启用了未命名的影子索引,事物可以有以 shadow.desiredshadow.reported 开头的自定义字段名称,然后是未命名的影子数据值名称。如果启用命名影子索引,事物可以有以 shadow.name.*.desired.shadow.name.*.reported. 开头的自定义字段名称,然后是命名的影子数据值。如果 Device Defender 违规索引处于启用状态,则可以有以开头的自定义字段名称deviceDefender.,然后是 Device Defender 违规数据值。

前缀后面的属性或数据值名称只能包含字母数字、-(连字符)和 _(下划线)字符。不能有任何空格。

如果配置中的自定义字段与要为其编制索引的值存在类型不一致,实例集索引将忽略聚合查询的不一致值。CloudWatch Logs 对于排除聚合查询问题很有帮助。有关更多信息,请参阅 队列索引服务的聚合查询疑难解答

  • 自定义字段类型

自定义字段类型具有以下支持的值:NumberStringBoolean