View a markdown version of this page

实例集索引疑难解答 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

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

实例集索引疑难解答

队列索引服务的聚合查询疑难解答

如果您遇到类型不匹配错误,则可以使用 CloudWatch 日志来解决问题。 CloudWatch 在队列索引服务写入日志之前,必须启用日志。有关更多信息,请参阅 监控 Amazon IoT 使用 CloudWatch 日志。

要在非托管式字段上进行聚合查询,必须指定您在传递给 UpdateIndexingConfiguration 或 update-indexing-configuration 的 customFields 参数中定义的字段。如果字段值与配置的字段数据类型不一致,则在执行聚合查询时忽略此值。

如果由于类型不匹配而无法对字段进行索引,Fleet Indexing 服务会向 Logs 发送错误日志。 CloudWatch 错误日志包含字段名称、无法转换的值以及设备的事物名称。下面是一个错误日志示例:

{ "timestamp": "2017-02-20 20:31:22.932", "logLevel": "ERROR", "traceId": "79738924-1025-3a00-a669-7bec69f7f07a", "accountId": "000000000000", "status": "SucceededWithIssues", "eventType": "IndexingCustomFieldFailed", "thingName": "thing0", "failedCustomFields": [ { "Name": "attributeName1", "Value": "apple", "ExpectedType": "String" }, { "Name": "attributeName2", "Value": "2", "ExpectedType": "Boolean" } ] }

如果设备已断开连接大约一小时,则连接状态 timestamp 值可能会缺失。对于持久会话,在客户端断开连接的时间超过为持久会话配置的生存时间(TTL)后,该值可能会缺失。仅为客户端 ID 具有匹配事物名称的连接,对连接状态数据建立索引。(客户端 ID 是用于连接设备的值 Amazon IoT Core。)

实例集索引配置故障排除

无法降级实例集索引配置

当您想要移除与实例集指标或动态组关联的数据来源时,不支持降级实例集索引配置。

例如,如果您的索引配置包含注册表数据、影子数据和连接数据,并且查询 thingName:TempSensor* AND shadow.desired.temperature>80 中存在实例集指标,则更新索引配置以仅包含注册表数据将导致错误。

不支持修改现有实例集指标使用的自定义字段。

由于实例集指标或动态组不兼容,无法更新您的索引配置

如果由于实例集指标或动态组不兼容而无法更新索引配置,请在更新索引配置之前删除不兼容的实例集指标或动态组。

位置索引和地理查询疑难解答

要解决位置索引和地理查询中的不匹配类型错误,可以启用 CloudWatch 日志。有关如何 Amazon IoT 使用监控的更多信息 CloudWatch,请按照分步指南进行操作。

使用地理查询为位置数据编制索引时,您在 geoLocations 中指定的位置字段必须与您传递到 UpdateIndexingConfiguration 的位置字段相匹配。如果不匹配,队列索引会向发送不匹配的类型错误。 CloudWatch错误日志包含字段名称、无法转换的值以及设备的事物名称。

下面是一个错误日志示例:

{ "timestamp": "2023-11-09 01:39:43.466", "logLevel": "ERROR", "traceId": "79738924-1025-3a00-a669-7bec69f7f07a", "accountId": "123456789012", "status": "Failure", "eventType": "IndexingGeoLocationFieldFailed", "thingName": "thing0", "failedGeolocationFields": [ { "Name": "attributeName1", "Value": "apple", "ExpectedType": "Geopoint" } ], "reason": "failed to index the field because it could not be converted to one of the expected geoLocation formats." }

有关更多信息,请参阅 为位置数据编制索引。

实例集故障排除指标

在里面看不到数据点 CloudWatch

如果您能够创建队列指标,但无法在其中看到数据点 CloudWatch,则很可能您的数据不符合查询字符串标准。

请参阅以下示例命令,了解如何创建实例集指标:

aws iot create-fleet-metric --metric-name "example_FM" --query-string "thingName:TempSensor* AND attributes.temperature>80" --period 60 --aggregation-field "attributes.temperature" --aggregation-type name=Statistics,values=count

如果没有符合查询字符串条件 --query-string "thingName:TempSensor* AND attributes.temperature>80" 的事物:

  • 使用values=count,您将能够创建舰队指标,并且可以显示数据点 CloudWatch。该值 count 的数据点始终为0。

  • 使用values其他count,您将能够创建舰队指标,但您不会在中看到舰队指标 CloudWatch ,也不会有任何数据点可供显示 CloudWatch。