디바이스 연결 상태 쿼리 - AWS IoT Core

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

디바이스 연결 상태 쿼리

AWS IoT플릿 인덱싱은 개별 디바이스 연결 쿼리를 지원하므로 특정 디바이스의 연결 상태 및 관련 메타데이터를 효율적으로 검색할 수 있습니다. 이 기능은 기존 플릿 전체 인덱싱 및 쿼리 기능을 보완합니다.

작동 방식

디바이스 연결 쿼리 지원은 최적화된 단일 디바이스 연결 상태 검색에 사용할 수 있습니다. 이 API는 최신 디바이스별 연결 정보에 대해 지연 시간이 짧고 처리량이 많은 액세스를 제공합니다. 연결 인덱싱을 활성화하면 표준 쿼리로 요금이 청구되는 이 쿼리 API에 액세스할 수 있습니다. 자세한 내용은 AWS IoT Device Management 요금을 참조하세요.

특성

디바이스 연결 쿼리 지원을 통해 다음을 수행할 수 있습니다.

  1. thingName을 사용하여 지정된 디바이스에 대한 현재 연결 상태(연결 또는 연결 해제됨)를 쿼리합니다.

  2. 다음을 포함한 추가 연결 메타데이터를 검색합니다.

    1. 연결 해제 이유

    2. 가장 최근 연결 또는 연결 해제 이벤트의 타임 스탬프입니다.

참고

플릿 인덱싱은 레지스트리에 등록된 사물의 thingName과 연결 clientId가 동일한 디바이스의 연결 상태를 인덱싱합니다.

이점

  1. 짧은 지연 시간: 최신 디바이스 연결 상태를 반영하고 짧은 지연 시간을 제공하여 IoT Core의 연결 상태 변경을 반영합니다. IoT Core는 디바이스로부터 연결 해제 요청을 받는 즉시 또는 연결 해제 요청을 보내지 않고 디바이스가 연결 해제되는 경우, 디바이스가 연결 해제된 것으로 판단합니다. IoT 코어는 클라이언트가 연결 해제되었다고 확인되기 전에 구성된 연결 유지 시간의 1.5배를 기다립니다. 연결 상태 API는 일반적으로 IoT Core가 디바이스의 연결 상태를 확인한 후 1초 이내에 이러한 변경 사항을 반영합니다.

  2. 높은 처리량: 기본적으로 350개의 초당 트랜잭션(TPS)을 지원하며 요청 시 더 높게 조정할 수 있습니다.

  3. 데이터 보존: 플릿 인덱싱(FI) ConnectivityIndexing 모드가 활성화되어 있고 사물이 삭제되지 않은 경우, 이벤트 데이터를 무기한 저장합니다. 연결 인덱싱을 비활성화하면 레코드가 보존되지 않습니다.

참고

이 API를 시작하기 전에 연결 상태 인덱싱이 활성화된 경우, 플릿 인덱싱은 API 시작 후에 발생한 연결 상태 변경을 추적하기 시작하고 이러한 변경 사항에 따라 업데이트된 상태를 반영합니다.

사전 조건

디바이스 연결 쿼리 지원을 사용하려면 다음을 수행하세요.

  1. AWS계정 설정

  2. 원하는 리전AWS IoT Core의에 디바이스 온보딩 및 등록

  3. 연결 인덱싱을 사용하여 플릿 인덱싱 활성화

참고

연결 인덱싱이 이미 활성화된 경우 추가 설정이 필요하지 않습니다.

자세한 설정 지침은 AWS IoT 개발자 안내서를 참조하세요.

예제

aws iot get-thing-connectivity-data --thing-name myThingName
{ "connected": true, "disconnectReason": "NONE", "thingName": "myThingName", "timestamp": "2024-12-19T10:00:00.000000-08:00" }
  • thingName: 요청에 표시된 디바이스의 이름입니다. 이는 AWS IoT Core에 연결하는 데 사용하는 clientId와도 일치합니다.

  • disconnectReason: 연결 해제 이유입니다. 연결된 디바이스의 경우 NONE으로 나타납니다.

  • connected: 이 디바이스가 현재 연결되어 있음을 나타내는 부울 값 true입니다.

  • timestamp: 디바이스의 가장 최근에 있었던 연결 해제를 밀리초로 나타내는 타임 스탬프입니다.

aws iot get-thing-connectivity-data --thing-name myThingName
{ "connected": false, "disconnectReason": "CLIENT_INITIATED_DISCONNECT", "thingName": "myThingName", "timestamp": "2024-12-19T10:30:00.000000-08:00" }
  • thingName: 요청에 표시된 디바이스의 이름입니다. 이는 AWS IoT Core에 연결하는 데 사용하는 clientId와도 일치합니다.

  • disconnectReason: 연결 해제 이유는 클라이언트가 연결 해제AWS IoT Core될 것이라고 표시된 클라이언트를 나타내는 CLIENT_INITIATED_DISCONNECT입니다.

  • connected: 이 디바이스가 현재 연결 해제되었음을 나타내는 부울 값 false입니다.

  • timestamp: 디바이스의 가장 최근에 있었던 연결 해제를 밀리초로 나타내는 타임 스탬프입니다.

aws iot get-thing-connectivity-data --thing-name neverConnectedThing
{ "connected": false, "disconnectReason": "UNKNOWN", "thingName": "neverConnectedThing" }
  • thingName: 요청에 표시된 디바이스의 이름입니다. 이는 AWS IoT Core에 연결하는 데 사용하는 clientId와도 일치합니다.

  • disconnectReason: 연결 해제 이유입니다. 연결된 적이 없거나 플릿 인덱싱에 마지막 연결 해제 이유가 저장되지 않은 디바이스의 경우 "UNKNOWN"이 됩니다.

  • connected: 이 디바이스가 현재 연결 해제되었음을 나타내는 부울 값 false입니다.

  • timestamp: 연결된 적이 없거나 플릿 인덱싱에 마지막 타임 스탬프가 저장되지 않은 디바이스에 대해서는 타임 스탬프가 반환되지 않습니다.