Powiadomienia o zdarzeniach
W tym artykule opisano powiadomienia o zdarzeniach generowane przez usługę Azure Digital Twins, ich strukturę i szczegóły dotyczące różnych typów, które można wygenerować.
Różne zdarzenia w usłudze Azure Digital Twins generują powiadomienia, które umożliwiają zapleczu rozwiązania uwzględnianie, gdy występują różne akcje. Te powiadomienia są następnie kierowane do różnych lokalizacji wewnątrz i poza usługą Azure Digital Twins, które mogą używać tych informacji do podjęcia działań.
Istnieje kilka typów powiadomień, które można wygenerować, a komunikaty powiadomień mogą wyglądać inaczej w zależności od typu wygenerowanego zdarzenia. Ten artykuł zawiera szczegółowe informacje o różnych typach komunikatów i o tym, jak mogą wyglądać.
Ten wykres przedstawia różne typy powiadomień:
Typ powiadomienia | Nazwa źródła routingu | Generowane z... |
---|---|---|
Powiadomienie o zmianie cyfrowej reprezentacji bliźniaczej | Powiadomienie o zmianie cyfrowej reprezentacji bliźniaczej | dowolna zmiana właściwości cyfrowej reprezentacji bliźniaczej |
Powiadomienie dotyczące cyklu życia cyfrowej reprezentacji bliźniaczej | Powiadomienie dotyczące cyklu życia cyfrowej reprezentacji bliźniaczej | dowolna operacja tworzenia lub usuwania cyfrowej reprezentacji bliźniaczej |
Powiadomienie o zmianie relacji cyfrowej reprezentacji bliźniaczej | Powiadomienie o zmianie relacji cyfrowej reprezentacji bliźniaczej | dowolna zmiana relacji cyfrowej reprezentacji bliźniaczej |
Komunikaty telemetryczne cyfrowej reprezentacji bliźniaczej | Komunikaty telemetryczne | dowolny komunikat telemetrii |
Struktura powiadomień
Struktura powiadomienia o zdarzeniach z usługi Azure Digital Twins zależy od miejsca docelowego powiadomienia.
Powiadomienia wysyłane do usługi Event Grid są zgodne z jednym z następujących formatów (zależne od ustawień usługi Event Grid):
- Schemat zdarzeń usługi Azure Event Grid
- Powiązanie protokołu HTTP dla rozwiązania CloudEvents.
Powiadomienia wysyłane do usług Event Hubs i Service Bus są zgodne z powiązaniem protokołu AMQP dla rozwiązania CloudEvents.
Powiadomienia o zmianie cyfrowej reprezentacji bliźniaczej
Powiadomienia o zmianie cyfrowej reprezentacji bliźniaczej są wyzwalane po zaktualizowaniu cyfrowej reprezentacji bliźniaczej, na przykład:
- Gdy wartości właściwości lub metadane zmieniają się.
- Gdy zmienią się metadane cyfrowej reprezentacji bliźniaczej lub składnika. Przykładem tego scenariusza jest zmiana modelu cyfrowej reprezentacji bliźniaczej.
Właściwości
Poniżej przedstawiono pola w treści powiadomienia o zmianie cyfrowej reprezentacji bliźniaczej.
Nazwa/nazwisko | Wartość |
---|---|
id |
Identyfikator powiadomienia, taki jak identyfikator UUID lub licznik obsługiwany przez usługę. source + id jest unikatowy dla każdego odrębnego zdarzenia |
source |
Nazwa centrum IoT lub wystąpienia usługi Azure Digital Twins, na przykład myhub.azure-devices.net lub mydigitaltwins.westus2.azuredigitaltwins.net |
data |
Dokument poprawki JSON opisujący aktualizację wprowadzoną w bliźniaczej reprezentacji bliźniaczej. Aby uzyskać szczegółowe informacje, zobacz Szczegóły treści poniżej. |
specversion |
1.0 Komunikat jest zgodny z tą wersją specyfikacji CloudEvents. |
type |
Microsoft.DigitalTwins.Twin.Update |
datacontenttype |
application/json |
subject |
Identyfikator cyfrowej reprezentacji bliźniaczej |
time |
Sygnatura czasowa dla momentu wystąpienia operacji w cyfrowej reprezentacji bliźniaczej |
traceparent |
Kontekst śledzenia W3C dla zdarzenia |
Szczegóły treści
Wewnątrz komunikatu data
pole zawiera dokument poprawki JSON zawierający aktualizację cyfrowej reprezentacji bliźniaczej.
Poniżej przedstawiono przykłady tego typu komunikatu dla każdego możliwego schematu powiadomień.
- Event Grid z usługą EventGridEvents
- Usługa Event Grid z rozwiązaniem CloudEvents
- Event Hubs i Service Bus
{
"id": "39d4abb9-e3ee-4ed5-ad17-2243a9784946",
"subject": "example-twin1",
"data": {
"data": {
"modelId": "dtmi:examplecom:interfaceName;1",
"patch": [
{
"value": "new name",
"path": "/room",
"op": "replace"
}
]
},
"contenttype": "application/json",
"traceparent": "00-2aa957558db348f387ef704b37631a1d-c28d665340fe5045-01"
},
"eventType": "Microsoft.DigitalTwins.Twin.Update",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2021-12-09T20:28:52.9795363Z",
"topic": "/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.EventGrid/topics/<topic-name>"
}
Uwaga
Usługa Azure Digital Twins obecnie nie obsługuje filtrowania zdarzeń na podstawie pól w tablicy. Obejmuje to filtrowanie właściwości w patch
sekcji powiadomienia o zmianie cyfrowej reprezentacji bliźniaczej.
Powiadomienia dotyczące cyklu życia cyfrowej reprezentacji bliźniaczej
Niezależnie od tego, czy cyfrowe reprezentacje bliźniacze reprezentują urządzenia usługi IoT Hub w usłudze Azure Digital Twins , czy nie, wszystkie będą emitować powiadomienia. Robią to z powodu powiadomień o cyklu życia, które dotyczą samej cyfrowej reprezentacji bliźniaczej.
Powiadomienia dotyczące cyklu życia są wyzwalane, gdy:
- Zostanie utworzona cyfrowa reprezentacja bliźniaka
- Bliźniacze reprezentacje cyfrowe są usuwane
Właściwości
Poniżej przedstawiono pola w treści powiadomienia o cyklu życia.
Nazwa/nazwisko | Wartość |
---|---|
id |
Identyfikator powiadomienia, taki jak identyfikator UUID lub licznik obsługiwany przez usługę. source + id jest unikatowy dla każdego odrębnego zdarzenia. |
source |
Nazwa centrum IoT lub wystąpienia usługi Azure Digital Twins, na przykład myhub.azure-devices.net lub mydigitaltwins.westus2.azuredigitaltwins.net |
data |
Dane bliźniaczej reprezentacji bliźniaczej, w której występuje zdarzenie cyklu życia. Aby uzyskać szczegółowe informacje, zobacz Szczegóły treści poniżej. |
specversion |
1.0 Komunikat jest zgodny z tą wersją specyfikacji CloudEvents. |
type |
Microsoft.DigitalTwins.Twin.Create Microsoft.DigitalTwins.Twin.Delete |
datacontenttype |
application/json |
subject |
Identyfikator cyfrowej reprezentacji bliźniaczej |
time |
Sygnatura czasowa dla momentu wystąpienia operacji na bliźniaczej reprezentacji |
traceparent |
Kontekst śledzenia W3C dla zdarzenia |
Szczegóły treści
Poniżej przedstawiono przykłady tego typu komunikatu dla każdego możliwego schematu powiadomień.
- Event Grid z usługą EventGridEvents
- Usługa Event Grid z rozwiązaniem CloudEvents
- Event Hubs i Service Bus
{
"id": "6ccdb1cd-0dc3-450f-8730-ceccda8439be",
"subject": "example-twin1",
"data": {
"data": {
"$dtId": "example-twin1",
"$etag": "W/\"ecf81d6c-8c1a-4a95-afd8-13bd4cea436f\"",
"room": "room name",
"$metadata": {
"$model": "dtmi:examplecom:interfaceName;1",
"room": {
"lastUpdateTime": "2021-12-09T20:28:52.6651216Z"
}
}
},
"contenttype": "application/json",
"traceparent": "00-2aa957558db348f387ef704b37631a1d-51f716e7397ec64b-01"
},
"eventType": "Microsoft.DigitalTwins.Twin.Create",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2021-12-09T20:28:52.6745538Z",
"topic": "/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.EventGrid/topics/<topic-name>"
}
Powiadomienia o zmianie relacji cyfrowej reprezentacji bliźniaczej
Powiadomienia o zmianie relacji są wyzwalane po utworzeniu, zaktualizowaniu lub usunięciu dowolnej relacji cyfrowej reprezentacji bliźniaczej.
Właściwości
Poniżej przedstawiono pola w treści powiadomienia o zmianie relacji.
Nazwa/nazwisko | Wartość |
---|---|
id |
Identyfikator powiadomienia, taki jak identyfikator UUID lub licznik obsługiwany przez usługę. source + id jest unikatowy dla każdego odrębnego zdarzenia |
source |
Nazwa wystąpienia usługi Azure Digital Twins, na przykład mydigitaltwins.westus2.azuredigitaltwins.net |
data |
Ładunek zmienionej relacji. Aby uzyskać szczegółowe informacje, zobacz Szczegóły treści poniżej. |
specversion |
1.0 Komunikat jest zgodny z tą wersją specyfikacji CloudEvents. |
type |
Microsoft.DigitalTwins.Relationship.Create Microsoft.DigitalTwins.Relationship.Update Microsoft.DigitalTwins.Relationship.Delete |
datacontenttype |
application/json |
subject |
Identyfikator relacji, na przykład <twin-ID>/relationships/<relationshipID> |
time |
Sygnatura czasowa dla momentu wystąpienia operacji w relacji |
traceparent |
Kontekst śledzenia W3C dla zdarzenia |
Szczegóły treści
Wewnątrz komunikatu data
pole zawiera ładunek relacji w formacie JSON. Używa on tego samego formatu co GET
żądanie dla relacji za pośrednictwem interfejsu API DigitalTwins.
Poniżej przedstawiono przykłady tego typu komunikatu dla każdego możliwego schematu powiadomień.
- Event Grid z usługą EventGridEvents
- Usługa Event Grid z rozwiązaniem CloudEvents
- Event Hubs i Service Bus
{
"id": "4d850574-0a28-4667-a59e-3b382ff0e74e",
"subject": "example-twin1/relationships/RuntimeEventsScenario_edge",
"data": {
"data": {
"modelId": "dtmi:examplecom:interfaceName;1",
"patch": [
{
"value": "new value",
"path": "/prop1",
"op": "replace"
}
]
},
"contenttype": "application/json",
"traceparent": "00-2aa957558db348f387ef704b37631a1d-c1fcf951f540ec44-01"
},
"eventType": "Microsoft.DigitalTwins.Relationship.Update",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2021-12-09T20:28:53.2016395Z",
"topic": "/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.EventGrid/topics/<topic-name>"
}
Komunikaty telemetryczne cyfrowej reprezentacji bliźniaczej
Cyfrowe reprezentacje bliźniacze mogą używać interfejsu API SendTelemetry do emitowania komunikatów telemetrycznych i wysyłania ich do punktów końcowych ruchu wychodzącego.
Właściwości
Poniżej przedstawiono pola w treści komunikatu telemetrii.
Nazwa/nazwisko | Wartość |
---|---|
id |
Identyfikator powiadomienia udostępnianego przez klienta podczas wywoływania interfejsu API telemetrii. |
source |
W pełni kwalifikowana nazwa bliźniaczej reprezentacji, z którą wysłano zdarzenie telemetrii. Używa następującego formatu: <your-Digital-Twin-instance>.api.<your-region>.digitaltwins.azure.net/<twin-ID> . |
specversion |
1.0 Komunikat jest zgodny z tą wersją specyfikacji CloudEvents. |
type |
microsoft.iot.telemetry |
data |
Komunikat telemetrii wysyłany z bliźniaczej reprezentacji bliźniaczej. Ładunek nie musi być zgodny z żadnym schematem zdefiniowanym w wystąpieniu usługi Azure Digital Twins. |
dataschema |
Schemat danych to identyfikator modelu bliźniaczej reprezentacji lub składnika, który emituje dane telemetryczne. Na przykład dtmi:example:com:floor4;2 . |
datacontenttype |
application/json |
traceparent |
Kontekst śledzenia W3C dla zdarzenia. |
Szczegóły treści
Treść zawiera pomiar telemetrii wraz z pewnymi informacjami kontekstowymi dotyczącymi bliźniaczej reprezentacji. Poniżej przedstawiono przykłady tego typu komunikatu dla każdego możliwego schematu powiadomień.
- Event Grid z usługą EventGridEvents
- Usługa Event Grid z rozwiązaniem CloudEvents
- Event Hubs i Service Bus
{
"id": "6f6635d8-f1b8-43ec-80fb-bb9453fc611c",
"subject": "example-twin1",
"data": {
"data": {
"prop": "hello from telemetry"
},
"dataschema": "dtmi:examplecom:interfaceName;1",
"contenttype": "application/json-patch+json; charset=utf-8",
"traceparent": "00-2aa957558db348f387ef704b37631a1d-e894098b46243743-01"
},
"eventType": "microsoft.iot.telemetry",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "0001-01-01T00:00:00Z",
"topic": "/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.EventGrid/topics/<topic-name>"
}
Następne kroki
Dowiedz się więcej o dostarczaniu zdarzeń do różnych miejsc docelowych przy użyciu punktów końcowych i tras: