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. Otrzymywanie zdarzeń jest gwarantowane, o ile token dostępu nie zostanie unieważniony przez użytkownika, a wiadomości o zdarzeniach nie wygasły.

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

Włącz wydarzenia

Zdarzenia można włączyć w Device Access konsoli. Wybierz projekt w konsoli.

Otwórz konsolę Device Access

Jeśli masz już włączone zdarzenia (np. podczas tworzenia projektu), pole Temat Pub/Sub w sekcji Informacje o projekcie powinno już mieć wartość o nazwie Identyfikator tematu w formacie:

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

Jeśli nie masz włączonych zdarzeń:

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

Skopiuj identyfikator tematu. Będzie Ci on potrzebny do utworzenia subskrypcji tematu, która umożliwi pobieranie wiadomości o zdarzeniach.

Tworzenie subskrypcji pull

W ramach subskrypcji pull subskrybent inicjuje żądania wysyłane do serwera Pub/Sub dotyczące komunikatów o zdarzeniach w kolejce. To szybki i łatwy sposób na sprawdzenie, czy zdarzenia są generowane dla autoryzowanych urządzeń.

Otwórz Cloud Shell dla swojego projektu Google Cloud:

Otwórz Google Cloud Shell

W wierszu poleceń Cloud Shell uruchom to polecenie, aby utworzyć subskrypcję pull do tematu przy użyciu dowolnego pola 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].

Inicjowanie zdarzeń

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

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

Zdarzenia dotyczące wszystkich struktur i urządzeń zostaną opublikowane po wywołaniu tego interfejsu API.

Generowanie zdarzeń

Zdarzenia są generowane w przypadku wszystkich zmian w polach cech, z których część jest przeprowadzana automatycznie, a częściowo ręcznie.

Na przykład: jeśli zmieni się temperatura otoczenia w pobliżu urządzenia Nest Thermostat, zdarzenie cechyTemperatura zostanie automatycznie wysłane z nową wartością ambientTemperatureCelsius.

Aby wygenerować go ręcznie:

  1. Fizycznie zmienić stan urządzenia, na przykład zmienić tryb urządzenia Nest Thermostat.
  2. Wyzwala zdarzenie, takie jak ruch, osoba lub dźwięk na kamerze Google Nest Cam.
  3. Wykonaj polecenie urządzenia za pomocą interfejsu SDM API.

Wyświetlanie wiadomości

Komunikaty o zdarzeniach możesz wyświetlać w projekcie Google Cloud w sekcji Subskrypcje Pub/Sub:

Otwórz subskrypcje Google Cloud Pub/Sub

  1. Kliknij utworzony wcześniej identyfikator subskrypcji.
  2. Na ekranie Szczegóły subskrypcji powinna być widoczna aktywność dla wykresu Liczba niepotwierdzonych wiadomości. Oznacza to, że wiadomości o zdarzeniach zostały odebrane w przypadku Twojej subskrypcji. Jeśli nie widzisz żadnej aktywności, poczekaj chwilę lub wygeneruj więcej zdarzeń.
  3. Kliknij WYŚWIETL WIADOMOŚCI, aby otworzyć panel Wiadomości.
  4. Kliknij PULL, aby wyświetlić wiadomości. Powinny one odpowiadać działaniom użytym do generowania zdarzeń.

Wiadomości można też wyświetlać w Cloud Shell przy użyciu podstawowego polecenia pull:

gcloud pubsub subscriptions pull subscription-id

Więcej informacji o typach subskrypcji oraz o typach zdarzeń wysyłanych przez interfejs SDM API i o tym, jak z nich korzystać, znajdziesz w sekcji Zdarzenia.

Zarządzanie wiadomościami

Aby zachować czystość subskrypcji i uniknąć powielonych wiadomości do innych subskrybentów, należy regularnie potwierdzać i usuwać wiadomości. Wszystkie wiadomości objęte subskrypcją można ręcznie usunąć w sekcji Subskrypcje Pub/Sub:

Otwórz subskrypcje Google Cloud Pub/Sub

  1. Kliknij identyfikator subskrypcji.
  2. Istnieje kilka sposobów na potwierdzenie i usunięcie danych:
    1. Kliknij WYŚWIETL WIADOMOŚCI, aby otworzyć panel Wiadomości. Zaznacz pole wyboru Włącz potwierdzenia i kliknij PULL, aby wyświetlić i potwierdzić wszystkie wiadomości.
    2. Kliknij WYSZUKAJ WIADOMOŚCI, aby trwale usunąć wszystkie istniejące wiadomości przez potwierdzenie bez wyświetlania ich. Kliknij WYCZYŚĆ, aby potwierdzić.

Wiadomości mogą być też trwale usuwane w Cloud Shell przy użyciu flagi --auto-ack z podstawowym poleceniem pull:

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

Zarządzaj subskrypcjami

Subskrypcje można konfigurować na różne sposoby, zgodnie z opisem w sekcji Korzystanie z właściwości subskrypcji.

Sposób zarządzania subskrypcjami i wiadomościami zależy od Ciebie, ale w przypadku aplikacji produkcyjnej zalecamy używanie do uwierzytelniania kont usługi, a nie kont użytkowników takich jak do tej pory w tym krótkim przewodniku. Konto usługi jest używane przez aplikację lub maszynę wirtualną, a nie przez osobę, i ma własny unikalny klucz konta.

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