

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 管理实例集索引
<a name="managing-fleet-index"></a>

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

## 事物索引
<a name="thing-index"></a>

为您的所有事物创建的索引称为 `AWS_Things`。事物索引支持以下数据源：[AWS IoT 注册表](thing-registry.md)数据，[AWS IoT Device Shadow](iot-device-shadows.md) 数据，[AWS IoT 连接](life-cycle-events.md)数据以及 [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html) 违规数据。通过将这些数据来源添加到实例集索引配置，您可以搜索事物，查询聚合数据，并根据搜索查询创建动态事物组和实例集指标。

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

**影子** - [AWS IoT Device Shadow 服务](iot-device-shadows.md)提供了有助于存储设备状态数据的影子。事物索引支持经典未命名影子和命名影子。要为命名影子编制索引，请激活您的命名影子设置并在事物索引配置中指定影子名称。默认情况下，您最多可以为每个影子添加 10 个阴影名称 AWS 账户。要了解如何增加影子名称的数量限制，请参阅《AWS 一般参考》**中的 [AWS IoT Device Management 配额](https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html#fleet-indexing-limits)。

要为索引添加命名影子，请执行以下操作：
+ 如果您使用 [AWS IoT 控制台](https://console.aws.amazon.com/iot/home)，请打开 **Thing indexing**（事物索引），选择 **Add named shadows**（添加命名的影子），然后通过 **Named shadow selection**（命名的影子选择）添加您的影子名称。
+ 如果使用 AWS Command Line Interface (AWS CLI)，则设置`namedShadowIndexingMode`为`ON`，然后在中指定阴影名称[https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html)。要查看 CLI 命令示例，请参阅[管理事物索引](managing-index.md#enable-index)。

**重要**  
2022 年 7 月 20 日是 AWS IoT 设备管理队列索引集成的正式上市 (GA) 版本，其中包含 AWS IoT Core 命名阴影和 AWS IoT Device Defender 检测违规行为。在此 GA 版中，您可以通过指定影子名称为特定的命名影子编制索引。如果您在 2021 年 11 月 30 日至 2022 年 7 月 19 日此特征的公开预览期添加了命名影子以编制索引，我们鼓励您重新配置实例集索引设置并选择特定的影子名称，以降低索引成本并优化性能。

 有关影子的更多信息，请参阅 [AWS IoT Device Shadow 服务](iot-device-shadows.md)。

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

Device **Defender AWS IoT Device Defender 违**规-违规数据有助于根据您在安全配置文件中定义的正常行为来识别异常设备行为。安全配置文件包含一组目标设备行为。每种行为都使用一个指标来指定设备的正常行为。有关 Device Defender 违规的更多信息，请参阅 [AWS IoT Device Defender 检测](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-detect.html)。

有关更多信息，请参阅[管理事物索引](managing-index.md)。

## 事物组索引
<a name="thing-group-index"></a>

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

有关更多信息，请参阅[管理事物组索引](thinggroup-index.md)。

## 托管字段
<a name="managed-field"></a>

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

以下列出了用于事物索引的托管字段：
+ 注册表的托管字段

  ```
  "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 | 

## 自定义字段
<a name="custom-field"></a>

您可以通过创建自定义字段来对事物属性、Device Shadow 数据和 Device Defender 违规数据进行汇总来进行索引。`customFields` 属性是字段名称和数据类型对的列表。您可以根据数据类型执行聚合查询。您选择的索引模式会影响可以在 `customFields` 中指定的字段。例如，如果您指定 `REGISTRY` 索引模式，则无法从事物影子中指定字段。您可以使用 [update-indexing-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/update-indexing-configuration.html)CLI 命令创建或更新自定义字段（参见[更新索引配置示例中的示例](managing-index.md#update-index-examples)命令）。
+ **自定义字段名称**

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

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

如果配置中的自定义字段与要为其编制索引的值存在类型不一致，实例集索引将忽略聚合查询的不一致值。 CloudWatch 对聚合查询问题进行故障排除时，日志很有用。有关更多信息，请参阅 [队列索引服务的聚合查询疑难解答](fleet-indexing-troubleshooting.md#aggregation-troubleshooting)。
+ **自定义字段类型**

自定义字段类型具有以下支持的值：`Number`、`String` 和 `Boolean`。