Udostępnij przez


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 uświadomienie sobie, 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 cyfrowego bliźniaka Powiadomienie o zmianie cyfrowego bliźniaka zmiana właściwości cyfrowego bliźniaka
Powiadomienie dotyczące cyklu życia cyfrowego bliźniaka Powiadomienie dotyczące cyklu życia cyfrowego bliźniaka dowolna operacja tworzenia lub usuwania cyfrowego bliźniaka
Powiadomienie o zmianie relacji cyfrowego bliźniaka Powiadomienie o zmianie relacji cyfrowego bliźniaka dowolna zmiana relacji cyfrowego bliźniaka
Komunikaty telemetryczne Cyfrowego Bliźniaka 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):

Powiadomienia wysyłane do Event Hubs i Service Bus są zgodne z powiązaniem protokołu AMQP dla CloudEvents.

Powiadomienia o zmianie cyfrowego bliźniaka

Powiadomienia o zmianach cyfrowego bliźniaka są wyzwalane, gdy cyfrowy bliźniak jest aktualizowany, na przykład:

  • Gdy wartości właściwości lub metadane zmieniają się.
  • Gdy zmienią się metadane cyfrowego bliźniaka lub składnika. Przykładem tego scenariusza jest zmiana modelu cyfrowego bliźniaka.

Właściwości

Oto pola w treści powiadomienia o zmianie cyfrowego bliźniaka.

Nazwa 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 centrum IoT lub usługi Azure Digital Twins, takiej jak myhub.azure-devices.net lub mydigitaltwins.westus2.azuredigitaltwins.net
data Dokument poprawki JSON opisujący aktualizację wprowadzoną w cyfrowym bliźniaku. 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 cyfrowego bliźniaka
time Sygnatura czasowa dla momentu wystąpienia operacji na cyfrowym bliźniaku
traceparent Kontekst śledzenia W3C dla zdarzenia

Szczegóły ciała

Wewnątrz komunikatu pole data zawiera dokument JSON Patch, który zawiera aktualizację cyfrowego bliźniaka.

Poniżej przedstawiono przykłady tego typu komunikatu dla każdego możliwego schematu powiadomień.

{
    "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 / Notatka

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 sekcji patch powiadomienia o zmianie cyfrowego bliźniaka.

Powiadomienia dotyczące cyklu życia cyfrowego bliźniaka

Niezależnie od tego, czy cyfrowe bliźniaki reprezentują urządzenia usługi IoT Hub w usłudze Azure Digital Twins, wszystkie będą emitować powiadomienia. Robią to z powodu powiadomień o cyklu życia, które dotyczą samego cyfrowego bliźniaka.

Powiadomienia dotyczące cyklu życia są wyzwalane, gdy:

  • Zostanie utworzony cyfrowy bliźniak
  • Cyfrowy bliźniak jest usuwany

Właściwości

Poniżej przedstawiono pola w treści powiadomienia o cyklu życia.

Nazwa 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 centrum IoT lub usługi Azure Digital Twins, takiej jak myhub.azure-devices.net lub mydigitaltwins.westus2.azuredigitaltwins.net
data Dane dotyczące bliźniaka, który przeżywa 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 cyfrowego bliźniaka
time Sygnatura czasowa momentu operacji na bliźniaku
traceparent Kontekst śledzenia W3C dla zdarzenia

Szczegóły ciała

Poniżej przedstawiono przykłady tego typu komunikatu dla każdego możliwego schematu powiadomień.

{
    "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 cyfrowego bliźniaka

Powiadomienia o zmianach relacji są wyzwalane, gdy dowolna relacja cyfrowego bliźniaka zostanie utworzona, zaktualizowana lub usunięta.

Właściwości

Poniżej przedstawiono pola w treści powiadomienia o zmianie relacji.

Nazwa 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, np. 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 Znacznik czasu określający moment przeprowadzenia operacji na relacji.
traceparent Kontekst śledzenia W3C dla zdarzenia

Szczegóły ciała

Wewnątrz komunikatu pole data zawiera ładunek relacji w formacie JSON. Używa tego samego formatu jak GET żądanie dotyczące relacji za pośrednictwem interfejsu API DigitalTwins.

Poniżej przedstawiono przykłady tego typu komunikatu dla każdego możliwego schematu powiadomień.

{
    "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 cyfrowego bliźniaka

Cyfrowe bliźniaki mogą używać interfejsu API SendTelemetry do emitowania komunikatów telemetrycznych i wysyłania ich do punktów końcowych.

Właściwości

Poniżej przedstawiono pola w treści komunikatu telemetrii.

Nazwa Wartość
id Identyfikator powiadomienia udostępnianego przez klienta podczas wywoływania interfejsu API telemetrii.
source W pełni kwalifikowana nazwa bliźniaka, z którego 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źniaka. Ładunek nie musi być zgodny z żadnym schematem zdefiniowanym w instancji Azure Digital Twins.
dataschema Schemat danych to identyfikator modelu bliźniaka lub składnika, który emituje telemetrię. Na przykład dtmi:example:com:floor4;2.
datacontenttype application/json
traceparent Kontekst śledzenia W3C dla zdarzenia.

Szczegóły ciała

Ciało zawiera pomiar telemetrii wraz z pewnymi informacjami kontekstowymi dotyczącymi cyfrowego bliźniaka. Poniżej przedstawiono przykłady tego typu komunikatu dla każdego możliwego schematu powiadomień.

{
    "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>"
}

Dalsze kroki

Dowiedz się więcej o dostarczaniu zdarzeń do różnych miejsc docelowych przy użyciu punktów końcowych i tras: