フリートインデックス作成トラブルシューティングガイド - AWS IoT Core

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

フリートインデックス作成トラブルシューティングガイド

フリートインデックス作成サービスの集計クエリのトラブルシューティング

タイプが一致しないというエラーが発生した場合は、 CloudWatch ログを使用して問題のトラブルシューティングを行うことができます。 CloudWatch Fleet Indexing サービスがログを書き込む前に、ログを有効にする必要があります。詳細については、「ログを使用して監視します。 AWS IoT CloudWatch 」を参照してください。

非管理対象フィールドに対して集計クエリを行うには、customFields または UpdateIndexingConfiguration に渡される update-indexing-configuration 引数で定義したフィールドを指定する必要があります。フィールド値が設定されたフィールドのデータ型と一致しない場合、集計クエリの実行時にこの値は無視されます。

タイプが一致しないためにフィールドをインデックス化できない場合、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" } ] }

デバイスが約 1 時間切断されていた場合、接続ステータス値 timestamp が含まれていない場合があります。永続セッションでは、永続セッションに設定されている time-to-live (TTL) よりも長くクライアントの接続が切断されると、値が失われる可能性があります。接続ステータスのデータのインデックスは、クライアント ID に一致するモノの名前が含まれる接続にのみ作成されます。(クライアント ID はデバイスの接続に使用される値です)。 AWS IoT Core

フリートインデックス作成のトラブルシューティング

フリートインデックス作成の設定をダウングレードできない

フリートメトリクスまたは動的グループに関連付けられているデータソースを削除する場合、フリートインデックス作成の設定のダウングレードはサポートされていません。

例えば、インデックス作成の設定にレジストリデータ、シャドウデータ、接続データがあり、クエリ thingName:TempSensor* AND shadow.desired.temperature>80 にフリートメトリクスが存在する場合、レジストリデータのみを含むようにインデックス作成の設定を更新するとエラーが発生します。

既存のフリートメトリクスが使用するカスタムフィールドの変更はサポートされていません。

フリートメトリクスまたは動的グループに互換性がないため、インデックス作成の設定を更新できません

互換性のないフリートメトリクスまたは動的グループが原因でインデックス作成の設定を更新できない場合は、インデックス作成の設定を更新する前に、互換性のないフリートメトリクスまたは動的グループを削除してください。

ロケーションインデックスとジオクエリのトラブルシューティング

ロケーションインデックスとジオクエリで発生するミスマッチタイプのエラーをトラブルシューティングするには、ログを有効にします。 CloudWatch AWS IoT 使用状況を監視する方法の詳細については CloudWatch、ガイドを参照してください。 step-by-step

ジオクエリを使用して位置データにインデックスを付ける場合、で指定する位置フィールドは、geoLocationsUpdateIndexingConfiguration渡す場所フィールドと一致する必要があります。不一致がある場合、フリートインデックスではミスマッチタイプのエラーがに送信されます。 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 です。

  • valuescount以外では、フリートメトリックを作成することはできますが、フリートメトリックは表示されず、表示するデータポイントもありません CloudWatch。 CloudWatch