队列索引服务的聚合查询疑难解答 - AWS IoT
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

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

在非托管字段上进行聚合查询时,只能指定您在传递给 UpdateIndexingConfigurationupdate-indexing-configurationcustomFields 参数中定义的字段。如果字段值与配置的字段数据类型不一致,则在执行聚合查询时忽略此值。

当字段由于类型不匹配而无法建立索引时,队列索引服务会向 CloudWatch Logs 发出错误日志。错误日志包含字段名称、无法转换的值以及设备的事物名称。下面是一个错误日志示例:

{ "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 是用于将设备到连接 AWS IoT Core 的值。)