이벤트는 비동기식이며 Google Cloud Pub/Sub에서 Project당 하나의 주제로 관리합니다. 이벤트는 모든 기기 및 구조에 대한 업데이트를 제공하며, 사용자가 액세스 토큰을 취소하지 않고 이벤트 메시지가 만료되지 않은 한 이벤트 수신을 보장합니다.
이벤트는 SDM API의 선택적 기능입니다. Google Cloud 프로젝트를 사용하여 쉽게 구현하고 확인할 수 있습니다.
이벤트 사용 설정
이벤트는 Device Access Console에서 사용 설정할 수 있습니다. 아직 선택하지 않았다면 콘솔에서 프로젝트를 선택합니다.
이미 이벤트를 사용 설정한 경우 (예: 프로젝트 생성 중) 프로젝트 정보 섹션의 Pub/Sub 주제 입력란에 이미 주제 ID라는 값이 다음 형식으로 입력되어 있어야 합니다.
projects/sdm-prod/topics/enterprise-project-id
이벤트를 사용 설정하지 않은 경우:
- Pub/Sub 주제의 아이콘을 클릭하고 수정을 선택합니다.
- Enable events(이벤트 사용 설정)를 선택하고 Save(저장)를 클릭합니다.
- 주제 ID가 위에 표시된 형식으로 자동 생성됩니다.
주제 ID를 복사합니다. 이벤트 메시지를 검색할 수 있도록 주제에 대한 구독을 만들 때 필요합니다.
풀 구독 만들기
가져오기 구독은 구독자가 대기열에 추가된 이벤트 메시지에 대해 Pub/Sub 서버에 요청을 시작하는 것입니다. 이 방법을 사용하면 승인된 기기에서 이벤트가 생성되고 있는지 빠르고 쉽게 확인할 수 있습니다.
Google Cloud 프로젝트용으로 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
값과 함께 자동으로 전송됩니다.
수동으로 생성하려면 다음 중 하나를 실행하세요.
- Nest Thermostat의 모드 변경과 같이 기기의 상태를 물리적으로 변경합니다.
- Google Nest Cam Indoor에서 움직임, 사람, 소리와 같은 활동을 트리거합니다.
- SDM API를 사용하여 기기 명령어를 실행합니다.
메시지 보기
이벤트 메시지는 Google Cloud 프로젝트의 Pub/Sub 구독 섹션에서 볼 수 있습니다.
- 앞에서 만든 구독 ID를 클릭합니다.
- 구독 세부정보 화면에 미확인 메시지 수 차트의 활동이 표시됩니다. 구독에 이벤트 메시지가 수신되었음을 나타냅니다. 활동이 표시되지 않으면 잠시 기다리거나 이벤트를 더 생성합니다.
- 메시지 보기를 클릭하여 메시지 패널을 엽니다.
- PULL를 클릭하여 메시지를 확인합니다. 이벤트를 생성하는 데 사용한 작업과 일치해야 합니다.
Cloud Shell에서 기본 pull
명령어를 사용하여 메시지를 볼 수도 있습니다.
gcloud pubsub subscriptions pull subscription-id
구독 유형, SDM API에서 전송하는 이벤트 유형, 사용 방법에 관한 자세한 내용은 이벤트를 참고하세요.
메일 관리
정기 결제를 깔끔하게 유지하고 다른 구독자에게 메시지가 중복 전송되지 않도록 메시지를 정기적으로 확인하고 삭제해야 합니다. 모든 구독 메시지는 Pub/Sub 구독 섹션에서 수동으로 삭제할 수 있습니다.
- 구독 ID를 클릭합니다.
- 확인하고 삭제하는 방법에는 다음과 같은 몇 가지가 있습니다.
- 메시지 보기를 클릭하여 메시지 패널을 엽니다. 확인 메시지 사용 설정 체크박스를 선택하고 가져오기를 클릭하여 모든 메시지를 확인하고 확인합니다.
- 모든 기존 메시지를 보지 않고 확인한 후 삭제하려면 메시지 삭제를 클릭합니다. 삭제를 클릭하여 확인합니다.
기본 pull
명령어와 함께 --auto-ack
플래그를 사용하여 Cloud Shell에서 메시지를 삭제할 수도 있습니다.
gcloud pubsub subscriptions pull subscription-id --auto-ack
구독 관리
구독은 구독 속성 사용에 설명된 대로 다양한 방식으로 구성할 수 있습니다.
구독 및 메시지를 관리하는 방법은 개발자마다 다르지만 프로덕션 애플리케이션의 경우 지금까지 이 빠른 시작 가이드에서 사용한 사용자 계정 대신 인증에 서비스 계정을 사용하는 것이 좋습니다. 서비스 계정은 사용자가 아닌 애플리케이션이나 가상 머신에서 사용되며 고유한 계정 키가 있습니다.
Device Access를 사용한 서비스 계정 인증에 관한 자세한 내용은 이벤트를 참고하세요.