

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 管理機群索引
<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 Device Management 機群索引與 AWS IoT Core 具名影子整合並 AWS IoT Device Defender 偵測違規的一般可用性 (GA) 版本。使用此 GA 版本，您可以透過指定影子名稱來索引特定的已命名影子。如果您在 2021 年 11 月 30 日至 2022 年 7 月 19 日期間，即在此功能的公開預覽期間新增了要編製索引的已命名影子，我們建議您重新設定機群索引設定，並選擇特定的影子名稱，以降低索引成本並最佳化效能。

 如需影子的詳細資訊，請參閱 [AWS IoT Device Shadow 服務](iot-device-shadows.md)。

**連線** - 裝置連線資料可協助您識別裝置的連線狀態。此連線資料是由[生命週期事件](life-cycle-events.md)驅動。當用戶端連線或中斷連線時， 會將生命週期事件與訊息 AWS IoT 發佈至 MQTT 主題。連線或中斷連線訊息可以是提供連線狀態詳細資訊的 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 Logs 在針對彙總查詢問題進行疑難排解時很有幫助。如需詳細資訊，請參閱[機群索引服務的疑難排解彙總查詢](fleet-indexing-troubleshooting.md#aggregation-troubleshooting)。
+ **自訂欄位類型**

自訂欄位類型擁有下列支援的值：`Number`、`String`，以及 `Boolean`。