플릿 인덱싱 문제 해결 - AWS IoT Core

플릿 인덱싱 문제 해결

플릿 인덱싱 서비스에 대한 집계 쿼리 문제 해결

형식 불일치 오류가 있는 경우 CloudWatch Logs를 사용하여 문제를 해결할 수 있습니다. CloudWatch Logs를 활성화해야 플릿 인덱싱 서비스에서 로그를 작성할 수 있습니다. 자세한 내용은 CloudWatch Logs를 사용한 AWS IoT 모니터링 단원을 참조하십시오.

비관리형 필드에 대해 집계 쿼리를 수행하려면 UpdateIndexingConfiguration 또는 update-indexing-configuration에 전달된 customFields 인수에 정의한 필드만 지정해야 합니다. 필드 값이 구성된 필드 데이터 형식과 일치하지 않는 경우 집계 쿼리를 수행할 때 이 값이 무시됩니다.

유형 불일치로 인해 필드를 인덱싱할 수 없는 경우 플릿 인덱싱 서비스는 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(Time-to-Live)보다 오래 연결이 끊어진 후에 값이 누락되었을 수 있습니다. 연결 상태 데이터는 클라이언트 ID에 일치하는 사물 이름이 있는 연결에 대해서만 인덱싱됩니다. (클라이언트 ID는 디바이스를 AWS IoT Core에 연결하는 데 사용되는 값입니다.)

플릿 인덱싱 구성 문제 해결

플릿 인덱싱 구성을 다운그레이드할 수 없음

플릿 지표 또는 동적 그룹과 연결된 데이터 소스를 제거하려는 경우에는 플릿 인덱싱 구성을 다운그레이드할 수 없습니다.

예를 들어 인덱싱 구성에 레지스트리 데이터, 섀도우 데이터 및 연결 데이터가 있고 플릿 지표가 쿼리 thingName:TempSensor* AND shadow.desired.temperature>80에 있는 경우 레지스트리 데이터만 포함하도록 인덱싱 구성을 업데이트하면 오류가 발생합니다.

기존 플릿 지표에서 사용하는 사용자 정의 필드 수정은 지원되지 않습니다.

플릿 지표나 동적 그룹이 호환되지 않아 인덱싱 구성을 업데이트할 수 없음

호환되지 않는 플릿 지표 또는 동적 그룹으로 인해 인덱싱 구성을 업데이트할 수 없는 경우, 인덱싱 구성을 업데이트하기 전에 호환되지 않는 플릿 지표 또는 동적 그룹을 삭제하세요.

위치 인덱싱 및 지오쿼리 문제 해결

위치 인덱싱 및 지오쿼리에서 일치하지 않는 유형 오류를 해결하려면 CloudWatch 로그를 활성화하면 됩니다. CloudWatch를 사용하여 AWS IoT를 모니터링하는 방법에 대한 자세한 내용은 단계별 가이드를 따르세요.

지오쿼리를 사용하여 위치 데이터를 인덱싱할 때 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입니다.

  • count 이외의 values를 사용하면 플릿 지표를 생성할 수 있지만 CloudWatch에 집합 지표가 표시되지 않고 CloudWatch에 표시할 데이터 포인트가 없습니다.