이벤트 구독

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

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

이벤트 사용 설정

이벤트는 Device Access 콘솔 콘솔에서 프로젝트를 선택합니다(아직 선택하지 않은 경우).

콘솔로 Device Access 이동

이벤트를 이미 사용 설정했다면 (예: 프로젝트 생성 중) 프로젝트 정보 섹션의 Pub/Sub 주제 필드에 다음과 같은 형식의 주제 ID라는 값이 이미 있어야 합니다.

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

이벤트를 사용 설정하지 않은 경우:

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

주제 ID를 복사합니다. 이벤트 메시지를 검색할 수 있도록 주제 구독을 만드는 데 필요합니다.

풀 구독 만들기

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

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

Google Cloud Shell로 이동

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

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를 사용한 서비스 계정 인증에 대한 자세한 내용은 이벤트를 참조하세요.