이벤트 구독

이벤트는 비동기식이며 Google Cloud Pub/Sub에서 Project별 단일 주제로 관리합니다. 이벤트는 모든 기기 및 구조에 대한 업데이트를 제공하며, 사용자가 액세스 토큰을 취소하지 않고 이벤트 메시지가 만료되지 않는 한 이벤트 수신이 보장됩니다.

이벤트는 SDM API의 선택적 기능입니다. Google Cloud 프로젝트를 사용하면 코드를 쉽게 구현하고 인증할 수 있습니다.

이벤트 사용 설정

이벤트는 콘솔에서 Device Access 사용 설정할 수 있습니다. 아직 선택하지 않았다면 Console에서 프로젝트를 선택합니다.

Device Access Console로 이동합니다.

이미 이벤트를 사용 설정한 경우 (예: 프로젝트 생성 중) 프로젝트 정보 섹션의 Pub/Sub 주제 필드에는 주제 ID라는 값이 다음 형식으로 이미 존재해야 합니다.

projects/sdm-prod/topics/enterprise-project-id

이벤트를 사용 설정하지 않은 경우 다음 단계를 따르세요.

  1. Pub/Sub 주제 아이콘을 클릭하고 수정을 선택합니다.
  2. 이벤트 사용을 선택하고 저장을 클릭합니다.
  3. 주제 ID는 위에 표시된 형식으로 생성됩니다.

주제 메시지를 복사합니다. 이벤트 메시지를 가져올 수 있도록 주제에 대한 구독을 만드는 데 필요합니다.

pull 구독 만들기

풀 구독은 구독자가 Pub/Sub 서버에 대기 중인 이벤트 메시지 요청을 시작하는 위치입니다. 이렇게 하면 승인된 기기의 이벤트가 생성되고 있는지 빠르고 쉽게 확인할 수 있습니다.

Google Cloud 프로젝트의 Cloud Shell을 엽니다.

Google Cloud Shell로 이동

원하는 subscription-id와 고유 주제 ID를 사용하여 Cloud Shell 프롬프트에서 다음 명령어를 실행하여 주제에 대한 가져오기 구독을 만듭니다.

gcloud pubsub subscriptions create subscription-id --topic=projects/sdm-prod/topics/enterprise-project-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].

이벤트 시작

Pub/Sub 구독이 생성된 후 처음으로 이벤트를 시작하려면 기기를 일회성 트리거로 나열하는 호출을 수행합니다.

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

모든 구조 및 기기의 이벤트는 이 API 호출 후에 게시됩니다.

이벤트 생성

이벤트는 모든 특성 필드 변경에 대해 생성되며, 일부는 자동이며 일부는 수동입니다.

예를 들어 Nest Thermostat 근처의 주변 온도가 변경되면 온도 속성에 대한 이벤트가 자동으로 새 ambientTemperatureCelsius 값과 함께 전송됩니다.

다음 중 하나를 수동으로 생성합니다.

  1. Nest Thermostat 모드 변경과 같이 기기 상태를 물리적으로 변경합니다.
  2. Google Nest Cam Indoor에서 움직임, 사람, 소리 등의 이벤트를 트리거합니다.
  3. SDM API를 사용하여 기기 명령어를 실행합니다.

메시지 보기

이벤트 메시지는 Google Cloud 프로젝트의 Pub/Sub 구독 섹션에서 볼 수 있습니다.

Google Cloud Pub/Sub 구독으로 이동

  1. 앞에서 만든 구독 ID를 클릭합니다.
  2. 구독 세부정보 화면에 미확인 메시지 수 차트의 활동이 표시됩니다. 이는 구독에 대한 이벤트 메시지가 수신되었음을 나타냅니다. 활동이 표시되지 않으면 잠시 기다리거나 이벤트를 추가로 생성합니다.
  3. 메시지 보기를 클릭하여 메시지 패널을 가져옵니다.
  4. 가져오기를 클릭하여 메시지를 확인합니다. 이벤트를 생성하는 데 사용한 작업과 일치해야 합니다.

Cloud Shell에서 기본 pull 명령어를 사용하여 메시지를 볼 수도 있습니다.

gcloud pubsub subscriptions pull subscription-id

정기 결제 유형, SDM API에서 전송하는 이벤트 유형, 사용 방법에 관한 자세한 내용은 이벤트를 참고하세요.

메일 관리

정기 결제를 깔끔하게 유지하고 다른 구독자에게 중복 메시지가 전송되지 않도록 메시지를 정기적으로 확인하고 영구 삭제해야 합니다. 모든 구독 메시지를 Pub/Sub 구독 섹션에서 수동으로 삭제할 수 있습니다.

Google Cloud Pub/Sub 구독으로 이동

  1. 구독 ID를 클릭합니다.
  2. 확인 및 영구 삭제 방법에는 몇 가지가 있습니다.
    1. 메시지 보기를 클릭하여 메시지 패널을 가져옵니다. 확인 메시지 사용 설정 체크박스를 선택하고 가져오기를 클릭하여 모든 메시지를 보고 확인합니다.
    2. 메시지 삭제를 클릭하면 확인하지 않고 확인하여 기존 메시지를 모두 삭제할 수 있습니다. 제거를 클릭하여 확인합니다.

메시지를 기본 pull 명령어와 함께 --auto-ack 플래그를 사용하여 Cloud Shell에서 삭제할 수도 있습니다.

gcloud pubsub subscriptions pull subscription-id --auto-ack

구독 관리

정기 결제는 정기 결제 속성 사용에 설명된 대로 다양한 방법으로 구성할 수 있습니다.

구독과 메시지 관리 방법은 개발자가 결정하지만, 프로덕션 애플리케이션의 경우 이 빠른 시작 가이드에서 지금까지와 같은 사용자 계정이 아닌 인증에 서비스 계정을 사용하는 것이 좋습니다. 서비스 계정은 사람이 아닌 애플리케이션이나 가상 머신에서 사용되며 고유한 계정 키가 있습니다.

Device Access를 사용한 서비스 계정 인증에 대한 자세한 내용은 이벤트를 참조하세요.