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.
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ń:
- Kliknij ikonę obok tematu Pub/Sub i wybierz Edytuj.
- Zaznacz Włącz zdarzenia i kliknij Zapisz.
- 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:
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:
- Fizycznie zmienić stan urządzenia, na przykład zmienić tryb urządzenia Nest Thermostat.
- Wyzwala zdarzenie, takie jak ruch, osoba lub dźwięk na kamerze Google Nest Cam.
- 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
- Kliknij utworzony wcześniej identyfikator subskrypcji.
- 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ń.
- Kliknij WYŚWIETL WIADOMOŚCI, aby otworzyć panel Wiadomości.
- 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
- Kliknij identyfikator subskrypcji.
- Istnieje kilka sposobów na potwierdzenie i usunięcie danych:
- 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.
- 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.