

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

# フリートインデックス作成のトラブルシューティング
<a name="fleet-indexing-troubleshooting"></a>

## フリートインデックス作成サービスの集計クエリのトラブルシューティング
<a name="aggregation-troubleshooting"></a>

タイプの不一致エラーがある場合は、CloudWatch Logs を使用して問題のトラブルシューティングを行うことができます。フリートインデックス作成サービスによってログが書き込まれる前に、CloudWatch Logs を有効にする必要があります。詳細については、「[CloudWatch Logs AWS IoT を使用したモニタリング](cloud-watch-logs.md)」を参照してください。

非管理対象フィールドに対して集計クエリを行うには、`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` が含まれていない場合があります。永続的なセッションでは、この値は、永続的なセッションに設定された有効期間 (TTL) よりも長い時間クライアントが切断されると表示されません。接続ステータスのデータのインデックスは、クライアント ID に一致するモノの名前が含まれる接続にのみ作成されます。(クライアント ID は、デバイスの接続に使用される値です AWS IoT Core。)

## フリートインデックス作成のトラブルシューティング
<a name="index-configuration-troubleshooting"></a>

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

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

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

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

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

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

## 位置インデックス作成とジオクエリのトラブルシューティング
<a name="fleet-index-geoquery-troubleshooting"></a>

位置インデックス作成とジオクエリの不一致タイプエラーをトラブルシューティングするには、CloudWatch ログを有効にします。CloudWatch AWS IoT を使用してモニタリングする方法の詳細については、[step-by-stepガイド](https://docs.aws.amazon.com//iot/latest/developerguide/cloud-watch-logs.html)」を参照してください。

ジオクエリを使用して位置データのインデックス作成をする場合、`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."
}
```

詳細については、「[位置データのインデックス作成](location-indexing-geoquery.md)」を参照してください。

## フリートメトリクスのトラブルシューティング
<a name="fleet-metrics-troubleshooting"></a>

**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 です。
+ `count` 以外の `values` を使用すると、フリートメトリクスを作成することはできますが、CloudWatch にはフリートメトリクスが表示されず、CloudWatch に表示するデータポイントも得られません。