Usługa Azure IoT Hub jako źródło usługi Event Grid
Ten artykuł zawiera właściwości i schemat zdarzeń usługi Azure IoT Hub. Aby zapoznać się ze schematami zdarzeń, zobacz Schemat zdarzeń usługi Azure Event Grid.
Dostępne typy zdarzeń
Usługa Azure IoT Hub emituje następujące typy zdarzeń:
Typ zdarzenia | opis |
---|---|
Microsoft.Devices.DeviceCreated | Publikowane w przypadku zarejestrowania urządzenia w centrum IoT. |
Microsoft.Devices.DeviceDeleted | Publikowane w przypadku usunięcia urządzenia z centrum IoT. |
Microsoft.Devices.DeviceConnected | Publikowane w przypadku połączenia urządzenia z centrum IoT. |
Microsoft.Devices.DeviceDisconnected | Publikowane w przypadku rozłączenia urządzenia z centrum IoT. |
Microsoft.Devices.DeviceTelemetry | Opublikowane po wysłaniu komunikatu telemetrii do centrum IoT Hub. |
Przykładowe zdarzenie
Schematy dla zdarzeń Device Połączenie ed i DeviceDisconnected mają taką samą strukturę. To przykładowe zdarzenie pokazuje schemat zdarzenia zgłoszonego, gdy urządzenie jest połączone z centrum IoT:
[{
"id": "f6bbf8f4-d365-520d-a878-17bf7238abd8",
"source": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"type": "Microsoft.Devices.DeviceConnected",
"time": "2018-06-02T19:17:44.4383997Z",
"data": {
"deviceConnectionStateEventInfo": {
"sequenceNumber":
"000000000000000001D4132452F67CE200000002000000000000000000000001"
},
"hubName": "egtesthub1",
"deviceId": "LogicAppTestDevice",
"moduleId" : "DeviceModuleID"
},
"specversion": "1.0"
}]
Zdarzenie DeviceTelemetry jest zgłaszane po wysłaniu zdarzenia telemetrii do usługi IoT Hub. Poniżej przedstawiono przykładowy schemat dla tego zdarzenia.
[{
"id": "9af86784-8d40-fe2g-8b2a-bab65e106785",
"source": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"type": "Microsoft.Devices.DeviceTelemetry",
"time": "2019-01-07T20:58:30.48Z",
"data": {
"body": {
"Weather": {
"Temperature": 900
},
"Location": "USA"
},
"properties": {
"Status": "Active"
},
"systemProperties": {
"iothub-content-type": "application/json",
"iothub-content-encoding": "utf-8",
"iothub-connection-device-id": "d1",
"iothub-connection-auth-method": "{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
"iothub-connection-auth-generation-id": "123455432199234570",
"iothub-enqueuedtime": "2019-01-07T20:58:30.48Z",
"iothub-message-source": "Telemetry"
}
},
"specversion": "1.0"
}]
Schematy zdarzeń DeviceCreated i DeviceDeleted mają taką samą strukturę. To przykładowe zdarzenie pokazuje schemat zdarzenia zgłoszonego podczas rejestrowania urządzenia w centrum IoT:
[{
"id": "56afc886-767b-d359-d59e-0da7877166b2",
"source": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"type": "Microsoft.Devices.DeviceCreated",
"time": "2018-01-02T19:17:44.4383997Z",
"data": {
"twin": {
"deviceId": "LogicAppTestDevice",
"etag": "AAAAAAAAAAE=",
"deviceEtag": "null",
"status": "enabled",
"statusUpdateTime": "0001-01-01T00:00:00",
"connectionState": "Disconnected",
"lastActivityTime": "0001-01-01T00:00:00",
"cloudToDeviceMessageCount": 0,
"authenticationType": "sas",
"x509Thumbprint": {
"primaryThumbprint": null,
"secondaryThumbprint": null
},
"version": 2,
"properties": {
"desired": {
"$metadata": {
"$lastUpdated": "2018-01-02T19:17:44.4383997Z"
},
"$version": 1
},
"reported": {
"$metadata": {
"$lastUpdated": "2018-01-02T19:17:44.4383997Z"
},
"$version": 1
}
}
},
"hubName": "egtesthub1",
"deviceId": "LogicAppTestDevice"
},
"specversion": "1.0"
}]
Właściwości zdarzenia
Wszystkie zdarzenia zawierają te same dane najwyższego poziomu:
Właściwość | Type | opis |
---|---|---|
id |
string | Unikatowy identyfikator zdarzenia. |
source |
string | Pełna ścieżka zasobu do źródła zdarzeń. To pole nie jest możliwe do zapisu. Ta wartość jest podawana przez usługę Event Grid. |
subject |
string | Zdefiniowana przez wydawcę ścieżka do tematu zdarzenia. |
type |
string | Jeden z zarejestrowanych typów zdarzeń dla tego źródła zdarzeń. |
time |
string | Czas generowania zdarzenia na podstawie czasu UTC dostawcy. |
data |
obiekt | Dane zdarzeń usługi IoT Hub. |
specversion |
string | Wersja specyfikacji schematu CloudEvents. |
W przypadku wszystkich zdarzeń usługi IoT Hub obiekt danych zawiera następujące właściwości:
Właściwość | Type | opis |
---|---|---|
hubName |
string | Nazwa centrum IoT Hub, w którym urządzenie zostało utworzone lub usunięte. |
deviceId |
string | Unikatowy identyfikator urządzenia. Ten ciąg uwzględniający wielkość liter może zawierać maksymalnie 128 znaków i obsługuje znaki alfanumeryczne ASCII 7-bitowe oraz następujące znaki specjalne: - : . + % _ # * ? ! ( ) , = @ ; $ ' . |
Zawartość obiektu danych jest inna dla każdego wydawcy zdarzeń.
W przypadku zdarzeń device Połączenie ed i Device Disconnected IoT Hub obiekt danych zawiera następujące właściwości:
Właściwość | Type | opis |
---|---|---|
moduleId |
string | Unikatowy identyfikator modułu. To pole jest danymi wyjściowymi tylko dla urządzeń modułów. Ten ciąg uwzględniający wielkość liter może zawierać maksymalnie 128 znaków i obsługuje znaki alfanumeryczne ASCII 7-bitowe oraz następujące znaki specjalne: - : . + % _ # * ? ! ( ) , = @ ; $ ' . |
deviceConnectionStateEventInfo |
obiekt | Informacje o zdarzeniu stanu połączenia urządzenia |
sequenceNumber |
string | Liczba, która pomaga wskazać kolejność zdarzeń podłączonych do urządzenia lub rozłączonych urządzeń. Najnowsze zdarzenie będzie miało numer sekwencji, który jest wyższy niż poprzednie zdarzenie. Ta liczba może ulec zmianie o więcej niż 1, ale ściśle rośnie. Zobacz , jak używać numeru sekwencji. |
W przypadku zdarzenia usługi IoT Hub telemetrii urządzenia obiekt danych zawiera komunikat urządzenie-chmura w formacie komunikatu usługi IoT Hub i ma następujące właściwości:
Właściwość | Type | opis |
---|---|---|
body |
string | Zawartość komunikatu z urządzenia. |
properties |
string | Właściwości aplikacji to ciągi zdefiniowane przez użytkownika, które można dodać do komunikatu. Te pola są opcjonalne. |
system properties |
string | Właściwości systemu ułatwiają identyfikowanie zawartości i źródła komunikatów. Komunikat telemetrii urządzenia musi być w prawidłowym formacie JSON z wartością contentType ustawioną na wartość JSON i contentEncoding ustawioną na wartość UTF-8 we właściwościach systemu komunikatów. Jeśli to nie jest ustawione, usługa IoT Hub napisze komunikaty w formacie zakodowanym w formacie base 64. |
W przypadku zdarzeń Usługi IoT Hub utworzonych urządzeń i usuniętych urządzeń obiekt danych zawiera następujące właściwości:
Właściwość | Type | Opis |
---|---|---|
twin |
obiekt | Informacje o bliźniaczej reprezentacji urządzenia będącej reprezentacją w chmurze metadanych urządzenia aplikacji. |
deviceID |
string | Unikatowy identyfikator bliźniaczej reprezentacji urządzenia. |
etag |
string | Moduł sprawdzania poprawności zapewniający spójność aktualizacji bliźniaczej reprezentacji urządzenia. Każdy element etag ma gwarancję, że będzie unikatowy dla bliźniaczej reprezentacji urządzenia. |
deviceEtag |
string | Moduł sprawdzania poprawności zapewniający spójność aktualizacji rejestru urządzeń. Każdy tag deviceEtag ma gwarancję unikatowości dla rejestru urządzeń. |
status |
string | Wskazuje, czy bliźniacze reprezentacje urządzenia są włączone, czy wyłączone. |
statusUpdateTime |
string | Sygnatura czasowa ISO8601 ostatniej aktualizacji stanu bliźniaczej reprezentacji urządzenia. |
connectionState |
string | Wskazuje, czy urządzenie jest połączone, czy odłączone. |
lastActivityTime |
string | Znacznik czasu ISO8601 ostatniego działania. |
cloudToDeviceMessageCount |
integer | Liczba komunikatów z chmury do urządzeń wysyłanych do tego urządzenia. |
authenticationType |
string | Typ uwierzytelniania używany dla tego urządzenia: SAS , SelfSigned lub CertificateAuthority . |
x509Thumbprint |
string | Odcisk palca to unikatowa wartość certyfikatu x509, często używana do znajdowania określonego certyfikatu w magazynie certyfikatów. Odcisk palca jest generowany dynamicznie przy użyciu algorytmu SHA1 i nie istnieje fizycznie w certyfikacie. |
primaryThumbprint |
string | Podstawowy odcisk palca certyfikatu x509. |
secondaryThumbprint |
string | Pomocniczy odcisk palca certyfikatu x509. |
version |
integer | Liczba całkowita, która jest zwiększana o jedną za każdym razem, gdy bliźniacza reprezentacja urządzenia jest aktualizowana. |
desired |
obiekt | Część właściwości, które mogą być zapisywane tylko przez zaplecze aplikacji i odczytywane przez urządzenie. |
reported |
obiekt | Część właściwości, które mogą być zapisywane tylko przez urządzenie i odczytywane przez zaplecze aplikacji. |
lastUpdated |
string | Sygnatura czasowa ISO8601 ostatniej aktualizacji właściwości bliźniaczej reprezentacji urządzenia. |
Samouczki i poradniki
Nazwa | opis |
---|---|
Wysyłanie powiadomień e-mail dotyczących zdarzeń usługi Azure IoT Hub przy użyciu usługi Logic Apps | Aplikacja logiki wysyła wiadomość e-mail z powiadomieniem za każdym razem, gdy urządzenie jest dodawane do usługi IoT Hub. |
Reagowanie na zdarzenia usługi IoT Hub przy użyciu usługi Event Grid w celu wyzwalania akcji | Omówienie integracji usługi IoT Hub z usługą Event Grid. |
Zamawianie zdarzeń połączonych urządzeń i odłączenia urządzenia | Przedstawia sposób zamawiania zdarzeń stanu połączenia urządzenia. |
Następne kroki
- Aby zapoznać się z wprowadzeniem do usługi Azure Event Grid, zobacz Co to jest usługa Event Grid?
- Aby dowiedzieć się, jak usługi IoT Hub i Event Grid współpracują ze sobą, zobacz React to IoT Hub events by using Event Grid to trigger actions (Reagowanie na zdarzenia usługi IoT Hub przy użyciu usługi Event Grid do wyzwalania akcji).