本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
准备实例集索引
使用 AWS IoT 队列索引,您可以使用名为 shadow ($package
) 的预留名称来搜索和聚合数据。您还可以通过查询预留命名影子和动态 AWS IoT 事物组对事物进行分组。例如,您可以找到有关哪些 AWS IoT 内容使用特定的软件包版本、未安装特定的软件包版本或未安装任何软件包版本的信息。您可以通过组合属性来获得进一步的见解。例如,识别具有特定版本且属于特定事物类型的事物(例如版本 1.0.0 和事物类型 pump_sensor)。有关更多信息,请参阅实例集索引。
将 $package
影子设置为数据来源
要在软件包目录中使用实例集索引,必须启用实例集索引,将命名影子设置为数据来源,并将 $package
定义为命名影子筛选条件。如果您尚未启用实例集索引,则可以在此过程中将其启用。从控制台中的 AWS IoT Core
或者,您可以在创建第一个软件包时启用实例集索引。出现为软件包管理启用依赖项对话框时,选择将设备软件包和版本作为数据来源添加到实例集索引的选项。通过选择此选项,还可以启用实例集索引。
注意
为软件包目录启用实例集索引会产生标准服务成本。有关更多信息,请参阅 AWS IoT Device Management定价
控制台中显示的指标
在 AWS IoT 控制台软件包详细信息页面上,Discovery 面板显示通过$package
阴影获取的标准指标。
当前版本分布图显示了与该软件包关联的所有设备中与某 AWS IoT 件事物关联的 10 个最新软件包版本的设备数量和百分比。注意:如果软件包的软件包版本多于图表中标注的版本,则可以发现它们分组在其它中。
历史图表显示指定时间段内与所选软件包版本关联的设备数量。该图表最初为空,直至您选择多达 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"
}
},
}
}
}
示例查询
下表根据 AnyThing
和 AnotherThing
的示例设备影子列出了查询示例。有关更多信息,请参阅示例事物查询。
所请求的信息 |
查询 |
结果 |
---|---|---|
安装了特定软件包版本的事物 |
|
|
未安装特定软件包版本的事物 |
|
|
使用软件包 ID 大于 1500 的软件包版本的任何设备 |
|
|
安装了特定软件包和安装了多个软件包的事物 |
|
|
通过 getBucketsAggregation
收集软件包版本分发
除了 AWS IoT 控制台中的 Discovery 面板外,您还可以使用该GetBucketsAggregation
API操作获取软件包版本分发信息。要获取软件包版本分发信息,必须执行以下操作:
在实例集索引中为每个软件包定义一个自定义字段。注意:创建自定义字段会计入 AWS IoT 实例集索引服务限额。
按如下方式格式化自定义字段:
shadow.name.$package.reported.
<packageName>
.version
有关更多信息,请参阅 AWS IoT 舰队索引中的 “自定义字段” 部分。