

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

# 準備機群索引
<a name="preparing-fleet-indexing"></a>

使用 AWS IoT 機群索引，您可以使用預留的具名影子 () 來搜尋和彙總資料`$package`。您也可以透過查詢 [預留已命名影子](preparing-to-use-software-package-catalog.md#reserved-named-shadow)和動態 AWS IoT 物件群組來分組物件。 [https://docs.aws.amazon.com/iot/latest/developerguide/dynamic-thing-groups.html](https://docs.aws.amazon.com/iot/latest/developerguide/dynamic-thing-groups.html)例如，您可以找到哪些 AWS IoT 物件使用特定套件版本、未安裝特定套件版本，或未安裝任何套件版本的相關資訊。您可以組合屬性以獲得進一步分析。例如，識別具有特定版本且屬於特定物件類型的物件 （例如 1.0.0 版和 pump\$1sensor 的物件類型）。如需詳細資訊，請參閱[機群索引](https://docs.aws.amazon.com/iot/latest/developerguide/iot-indexing.html)。

## 將 `$package` 影子設定為資料來源
<a name="shadow-as-data-source"></a>

若要搭配使用機群索引與軟體套件目錄，您必須啟用機群索引、將已命名影子設定為資料來源，並定義 `$package` 為已命名影子篩選條件。若您尚未啟用機群索引，您可以在此程序中啟用。在主控台的 [AWS IoT Core](https://console.aws.amazon.com/iot/home) 開啟**設定**，選擇**管理索引**，接著選擇**新增已命名影子**、**新增裝置軟體套件和版本**，以及**更新**。如需詳細資訊，請參閱[管理物件索引](https://docs.aws.amazon.com/iot/latest/developerguide/managing-fleet-index.html#thing-index)。

或者，您也可以在建立第一個套件時啟用機群索引。當**啟用套件管理的相依性**對話方塊出現時，請選擇將裝置軟體套件和版本新增為資料來源至機群索引。透過此選項，您也可以啟用機群索引。

**注意**  
啟用軟體套件目錄的機群索引會產生標準服務費用。如需詳細資訊，請參閱 [AWS IoT Device Management定價](https://aws.amazon.com/iot-device-management/pricing/)。

## 控制台顯示的指標
<a name="metrics-displayed-in-console"></a>

![\[標準指標影像\]](http://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/images/package-catalog-discovery-metrics.png)


在 AWS IoT 主控台軟體套件詳細資訊頁面上，**探索**面板會顯示透過`$package`影子擷取的標準指標。
+ **目前版本分佈**圖顯示 10 個最新套件版本的裝置數量和百分比，這些套件版本與與此軟體套件相關聯的所有裝置中的 AWS IoT 物件相關聯。**注意：**若軟體套件的套件版本多於圖表中標示的版本，您在**其他**中會發現它們已分組。
+ **歷史圖表**會顯示指定期間內，與所選套件版本相關聯的裝置數量。圖表一開始會是空白的，您可以選取最多 5 個套件版本並定義日期範圍和時間間隔。若要選取圖表的參數，請選擇**設定**。**歷史圖表**顯示的資料可能與**目前版本分佈**圖表不同，這是因為兩者顯示的套件版本數量不同，也因為**歷史圖表**可以選擇要分析哪些套件版本。**注意：**選取要進行視覺化的套件版本時，會計入機群指標限制的上限數量。如需詳細資訊，請參閱[機群索引限制和配額](https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html#fleet-indexing-limits)。

如需了解收集套件版本分佈的其他方法，請參閱[透過 `getBucketsAggregation` 收集套件版本分佈](https://docs.aws.amazon.com/iot/latest/developerguide/preparing-fleet-indexing.html#package-version-distribution)。

## 查詢模式
<a name="query-patterns"></a>

軟體套件目錄的機群索引使用大多數標準支援的功能 （例如詞彙、片語和搜尋欄位）。不過，比較運算子 （例如，小於`<`和大於 `>`) 和`range`查詢不適用於保留的具名影子 (`$package`) `version`索引鍵。這些查詢可用於 `attributes`金鑰。如需詳細資訊，請參閱[查詢語法](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)。

### 範例資料
<a name="query-patterns-example-data"></a>

**注意：**如需詳細了解預留已命名影子及其結構，請參閱[預留已命名影子](https://docs.aws.amazon.com/iot/latest/developerguide/preparing-to-use-software-package-catalog.html#reserved-named-shadow)。

在此範例中，第一部裝置名為 `AnyThing` 且已安裝下列套件：
+ 軟體套件：`SamplePackage`

  套件版本：`1.0.0`

  套件 ID：`1111`

影子如下所示：

```
{
    "state": {
        "reported": {
            "SamplePackage": {
                "version": "1.0.0",
                "attributes": {
                    "s3UrlForSamplePackage": "https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile1",
                    "packageID": "1111"
                    }
            }
        }
    }
}
```

第二部裝置名為 `AnotherThing` 且已安裝下列套件：
+ 軟體套件：`SamplePackage`

  套件版本：`1.0.0`

  套件 ID：`1111`
+ 軟體套件：`OtherPackage`

  套件版本：`1.2.5`

  套件 ID：`2222`

影子如下所示：

```
{
    "state": {
        "reported": {
            "SamplePackage": {
                "version": "1.0.0",
                "attributes": {
                    "s3UrlForSamplePackage": "https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile1",
                    "packageID": "1111"
                }
            },
            "OtherPackage": {
                "version": "1.2.5",
                "attributes": {
                    "s3UrlForOtherPackage": "https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile2",
                    "packageID": "2222"
                    }
            },
        }
    }
}
```

### 範例查詢
<a name="sample-queries"></a>

下表列出根據 `AnyThing` 和 `AnotherThing` 範例裝置影子的查詢範例。如需詳細資訊，請參閱[範例物件查詢](https://docs.aws.amazon.com/iot/latest/developerguide/example-queries.html)。


**FreeRTOS AWS IoT Device Tester 的最新版本**  

| **已請求的資訊** | **Query** | **結果** | 
| --- | --- | --- | 
|  已安裝特定套件版本的物件  |  `shadow.name.$package.reported.SamplePackage.version:1.0.0`  |  `AnyThing`, `OtherThing`  | 
|  未安裝特定套件版本的物件  |  `NOT shadow.name.$package.reported.OtherPackage.version:1.2.5`  |  `AnyThing`  | 
|  所使用套件版本的套件 ID 大於 1500 的任何裝置  |  `shadow.name.$package.reported.*.attributes.packageID>1500"`  |  `OtherThing`  | 
|  已安裝特定套件且安裝多個套件的物件  |  `shadow.name.$package.reported.SamplePackage.version:1.0.0 AND shadow.name.$package.reported.totalCount:2`  |  `OtherThing`  | 

## 透過 `getBucketsAggregation` 收集套件版本分佈
<a name="package-version-distribution"></a>

除了 AWS IoT 主控台中的**探索**面板之外，您也可以使用 [https://docs.aws.amazon.com/iot/latest/apireference/API_GetBucketsAggregation.html](https://docs.aws.amazon.com/iot/latest/apireference/API_GetBucketsAggregation.html) API 操作取得套件版本分佈資訊。若要取得套件版本分佈資訊，您必須執行下列動作：
+ 在機群索引中為每個軟體套件定義自訂欄位。**注意：**建立自訂欄位會計入 [AWS IoT 機群索引服務配額](https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html#fleet-indexing-limits)。
+ 自訂欄位的格式如下所示：

  `shadow.name.$package.reported.<packageName>.version`

如需詳細資訊，請參閱 AWS IoT 機群索引中的[自訂欄位](https://docs.aws.amazon.com/iot/latest/developerguide/managing-fleet-index.html#custom-field)區段。