Subskrybuj wydarzenia

Zdarzenia są asynchroniczne i zarządzane przez Google Cloud Pub/Sub w 1 temacie na Project. Zdarzenia zapewniają aktualizacje dla wszystkich urządzeń i struktur, a także odbieranie zdarzeń, jeśli token dostępu nie zostanie unieważniony przez użytkownika, a wiadomości dotyczące zdarzeń nie wygasną.

Zdarzenia to opcjonalna funkcja interfejsu SDM API. Można je łatwo wdrożyć i zweryfikować za pomocą projektu Google Cloud.

Włącz wydarzenia

Zdarzenia można włączyć w Device Access konsoli. Wybierz swój projekt w konsoli, jeśli jeszcze go nie masz.

Otwórz Device Access konsolę

Jeśli masz już włączone zdarzenia (na przykład podczas tworzenia projektu), w polu Temat Pub/Sub w sekcji Informacje o projekcie powinny być już wartości, zwane identyfikatorem identyfikatora, w formacie:

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

Jeśli wydarzenia nie zostały włączone:

  1. Kliknij ikonę obok Temat Pub/Sub i wybierz Edytuj.
  2. Zaznacz Włącz zdarzenia i kliknij Zapisz.
  3. Identyfikator tematu zostanie wygenerowany w podanym wyżej formacie.

Skopiuj swój identyfikator tematu, ponieważ jest on potrzebny do utworzenia subskrypcji tematu. Dzięki temu będzie można pobierać wiadomości dotyczące zdarzeń.

Tworzenie subskrypcji pull

Subskrypcja pull polega na tym, że subskrybent inicjuje żądania serwera Pub/Sub dotyczące wiadomości w kolejce zdarzeń. To szybki i prosty sposób na sprawdzenie, czy zdarzenia są generowane na Twoje autoryzowane urządzenia.

Otwórz Cloud Shell dla swojego projektu Google Cloud:

Otwórz Google Cloud Shell

W oknie Cloud Shell uruchom podane niżej polecenie, aby utworzyć subskrypcję pull opartą na temacie w postaci pull z użyciem dowolnego identyfikatora subscription-id i unikalnego identyfikatora tematu:

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

Rozpoczynanie wydarzeń

Aby zainicjować zdarzenia po raz pierwszy po utworzeniu subskrypcji Pub/Sub, wywołaj listę urządzeń jako jednorazową regułę:

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

Zdarzenia dla wszystkich struktur i urządzeń będą publikowane po tym wywołaniu interfejsu API.

Generowanie zdarzeń

Zdarzenia są generowane dla wszystkich zmian pól cech, z których niektóre są automatyczne, niektóre ręczne.

Jeśli na przykład temperatura otoczenia w pobliżu termostatu Nest ulegnie zmianie, zdarzenieTemperatury zostanie automatycznie wysłane z nową wartością ambientTemperatureCelsius.

Aby wygenerować kod ręcznie:

  1. Fizycznie zmienić stan urządzenia, na przykład zmienić tryb urządzenia Nest Thermostat.
  2. Wywoływanie zdarzenia, np. ruchu, osoby lub dźwięku, na Google Nest Cam Internal.
  3. Uruchom polecenie urządzenia za pomocą interfejsu SDM API.

Wyświetl wiadomości

Wiadomości dotyczące zdarzeń można wyświetlić w projekcie Google Cloud w sekcji Subskrypcje Pub/Sub:

Przejdź do subskrypcji Google Cloud Pub/Sub

  1. Kliknij utworzony wcześniej identyfikator subskrypcji.
  2. Na ekranie Szczegóły subskrypcji powinny być widoczne działania związane z wykresem Liczba niepotwierdzonych wiadomości. Oznacza to, że wiadomości dotyczące Twojej subskrypcji przyszły. Jeśli nie widzisz żadnej aktywności, zaczekaj chwilę lub wygeneruj jeszcze kilka zdarzeń.
  3. Kliknij WYŚWIETL WIADOMOŚCI, aby wyświetlić panel Wiadomości.
  4. Kliknij PULL, aby wyświetlić wiadomości. Powinny one odpowiadać działaniom służącym do generowania zdarzeń.

Wiadomości można też wyświetlać w Cloud Shell za pomocą podstawowego polecenia pull:

gcloud pubsub subscriptions pull subscription-id

Więcej informacji o typach subskrypcji, typach zdarzeń wysyłanych przez interfejs SDM API i sposobach ich użycia znajdziesz w sekcji Zdarzenia.

Zarządzanie wiadomościami

Wiadomości należy regularnie potwierdzać i trwale usuwać, aby subskrypcja była czysta i nie trafiała do innych subskrybentów. Wszystkie wiadomości dotyczące subskrypcji można trwale usunąć ręcznie w sekcji Subskrypcje Pub/Sub:

Przejdź do subskrypcji Google Cloud Pub/Sub

  1. Kliknij identyfikator subskrypcji.
  2. Oto kilka sposobów potwierdzenia i trwałego usunięcia treści:
    1. Kliknij WYŚWIETL WIADOMOŚCI, aby wyświetlić panel Wiadomości. Zaznacz pole wyboru Włącz wiadomości potwierdzenia, a następnie kliknij PULL, aby wyświetlić i potwierdzić wszystkie wiadomości.
    2. Kliknij USUŃ WIADOMOŚCI, aby trwale usunąć wszystkie wiadomości, potwierdzając je bez wyświetlania. Aby potwierdzić, kliknij USUŃ.

Wiadomości można również trwale usuwać w Cloud Shell za pomocą flagi --auto-ack za pomocą podstawowego polecenia pull:

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

Zarządzaj subskrypcjami

Subskrypcje można konfigurować na różne sposoby. Opisaliśmy je w sekcji Używanie właściwości subskrypcji.

Chociaż chcesz zarządzać subskrypcjami i wiadomościami, to w przypadku aplikacji produkcyjnej zalecamy korzystanie z kont usługi do uwierzytelniania zamiast konta użytkownika takiego jak Ty w tym krótkim przewodniku. Konto usługi jest używane przez aplikację lub maszynę wirtualną, a nie osobę, i ma własny unikalny klucz konta.

Więcej informacji o uwierzytelnianiu konta usługi za pomocą Device Accessznajdziesz w artykule Zdarzenia.