本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
機群索引疑難排解指南
機群索引服務的疑難排解彙總查詢
如果您遇到類型不匹配錯誤,可以使用 CloudWatch Logs 來疑難排解問題。 CloudWatch 在「叢集索引」服務寫入記錄檔之前,必須先啟用記錄檔。如需詳細資訊,請參閱 AWS IoT 使用 CloudWatch 記錄監控。
若要對非受管欄位進行彙總查詢,您必須指定您在 customFields
引數中定義的欄位傳遞給 UpdateIndexingConfiguration
或 update-indexing-configuration。如果欄位值與設定的欄位資料類型不一致,則在您執行彙總查詢時會忽略此值。
如果欄位因為類型不相符而無法編製索引,叢集索引服務會將錯誤記錄傳送至 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
值。對於持續工作階段,當用戶端中斷連線的時間長於持續性工作階段所設定的 time-to-live (TTL) 時,該值可能會遺失。只有針對用戶端 ID 有相符物件名稱的連線,連線狀態資料才會建立索引。用戶端 ID 是用來連接裝置的值 AWS IoT Core。)
疑難排解機群索引組態
無法降級機群索引組態
移除與機群指標或動態群組相關聯的資料來源時,不支援機群索引組態降級。
例如,若您的索引組態具有登錄資料、影子資料和連線資料,且查詢 thingName:TempSensor*
AND shadow.desired.temperature>80
有機群指標,則更新索引組態以僅包含登錄資料將導致錯誤。
不支援修改現有機群指標使用的自訂欄位。
由於不相容的機群指標或動態群組,無法更新您的索引組態
若由於不相容的機群指標或動態群組而無法更新索引組態,請先刪除不相容的機群指標或動態群組,然後再更新索引組態。
疑難排解位置索引和地理查詢
若要疑難排解位置索引和地理查詢中的不相符類型錯誤,您可以啟用 CloudWatch 記錄。如需有關如何監視 AWS IoT 使用的詳細資訊 CloudWatch,請遵循 step-by-step 指南。
使用地理查詢為UpdateIndexingConfiguration
位置資料建立索引時,您在中指定的位置欄位geoLocations
必須與您傳遞的位置欄位相符。如果發生不相符,叢集索引會傳送不相符的類型錯誤給。 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。