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

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

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

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

タイプミスマッチエラーがある場合は、 CloudWatch ログを使用して問題のトラブルシューティングを行うことができます。 CloudWatch Fleet Indexing サービスによってログが書き込まれる前に、ログを有効にする必要があります。詳細については、「 CloudWatch ログ AWS IoT を使用したモニタリング」を参照してください。

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

タイプが一致しないためにフィールドのインデックスを作成できない場合、フリートインデックス作成サービスはエラーログを 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" } ] }

デバイスが約 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「」ガイドを参照してください。

地理クエリを使用して位置データをインデックス化する場合、 で指定する位置フィールドは、 に渡す位置フィールドと一致する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。