準備機群索引 - AWS IoT Core

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

準備機群索引

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

$package 影子設定為資料來源

若要搭配使用機群索引與軟體套件目錄,您必須啟用機群索引、將已命名影子設定為資料來源,並定義 $package 為已命名影子篩選條件。若您尚未啟用機群索引,您可以在此程序中啟用。在主控台的 AWS IoT Core 開啟設定,選擇管理索引,接著選擇新增已命名影子新增裝置軟體套件和版本,以及更新。如需詳細資訊,請參閱管理物件索引

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

注意

啟用軟體套件目錄的機群索引會產生標準服務費用。如需詳細資訊,請參閱 AWS IoT Device Management定價

控制台顯示的指標

標準指標影像

在 AWS IoT 主控台軟體套件詳細資訊頁面上,探索面板會顯示透過$package影子擷取的標準指標。

  • 目前版本分佈圖顯示 10 個最近套件版本與 AWS IoT 物件相關聯的裝置數量和百分比,這些裝置和百分比來自與此軟體套件相關聯的所有裝置。注意:若軟體套件的套件版本多於圖表中標示的版本,您在其他中會發現它們已分組。

  • 歷史圖表會顯示指定期間內,與所選套件版本相關聯的裝置數量。圖表一開始會是空白的,您可以選取最多 5 個套件版本並定義日期範圍和時間間隔。若要選取圖表的參數,請選擇設定歷史圖表顯示的資料可能與目前版本分佈圖表不同,這是因為兩者顯示的套件版本數量不同,也因為歷史圖表可以選擇要分析哪些套件版本。注意:選取要進行視覺化的套件版本時,會計入機群指標限制的上限數量。如需詳細資訊,請參閱機群索引限制和配額

如需了解收集套件版本分佈的其他方法,請參閱透過 getBucketsAggregation 收集套件版本分佈

查詢模式

搭配軟體套件目錄進行機群索引時,會使用大多數受支援的功能 (例如詞彙和字詞以及搜尋欄位),這些功能是標準的機群索引功能。例外狀況是,comparison 和 range 查詢不適用於預留已命名影子 ($package) version 索引鍵。但是,這些查詢可用於 attributes 索引鍵。如需詳細資訊,請參閱查詢語法

範例資料

注意:如需詳細了解預留已命名影子及其結構,請參閱預留已命名影子

在此範例中,第一部裝置名為 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" } }, } } }

範例查詢

下表列出根據 AnyThingAnotherThing 範例裝置影子的查詢範例。如需詳細資訊,請參閱範例物件查詢

AWS IoT Device Tester 免費最新版本的RTOS

已請求的資訊

查詢

結果

已安裝特定套件版本的物件

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 收集套件版本分佈

除了 AWS IoT 主控台中的探索面板之外,您也可以使用 GetBucketsAggregationAPI操作取得套件版本分佈資訊。若要取得套件版本分佈資訊,您必須執行下列動作:

  • 在機群索引中為每個軟體套件定義自訂欄位。注意:建立自訂欄位會計入 AWS IoT 機群索引服務配額

  • 自訂欄位的格式如下所示:

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

如需詳細資訊,請參閱 AWS IoT 機群索引中的自訂欄位區段。