Händelseaviseringar
Den här artikeln beskriver händelsemeddelanden som genereras av Azure Digital Twins, deras struktur och information om de olika typer som kan genereras.
Olika händelser i Azure Digital Twins skapar meddelanden som gör att lösningens serverdel kan vara medveten om när olika åtgärder sker. Dessa meddelanden dirigeras sedan till olika platser i och utanför Azure Digital Twins som kan använda den här informationen för att vidta åtgärder.
Det finns flera typer av meddelanden som kan genereras, och meddelanden kan se olika ut beroende på vilken typ av händelse som genererade dem. Den här artikeln innehåller information om olika typer av meddelanden och hur de kan se ut.
Det här diagrammet visar de olika meddelandetyperna:
Meddelandetyp | Namn på routningskälla | Genererad från... |
---|---|---|
Ändringsmeddelande för digital tvilling | Ändringsmeddelande för digital tvilling | alla ändringar av digital tvillingegenskap |
Livscykelmeddelande för digital tvilling | Livscykelmeddelande för digital tvilling | alla åtgärder för att skapa eller ta bort digitala tvillingar |
Ändringsmeddelande för digital tvilling-relation | Ändringsmeddelande för digital tvilling-relation | alla förändringar i relationen mellan digitala tvillingar |
Telemetrimeddelanden för digital tvilling | Telemetrimeddelanden | telemetrimeddelande |
Meddelandestruktur
Strukturen för ett händelsemeddelande från Azure Digital Twins beror på meddelandets mål.
Meddelanden som skickas till Event Grid överensstämmer med något av följande format (beroende på Event Grid-inställningarna):
- Azure Event Grid händelseschema
- HTTP-protokollbindning för CloudEvents.
Meddelanden som skickas till Event Hubs och Service Bus överensstämmer med AMQP-protokollbindningen för CloudEvents.
Meddelanden om ändring av digital tvilling
Meddelanden om ändring av digitala tvillingar utlöses när en digital tvilling uppdateras, till exempel:
- När egenskapsvärden eller metadata ändras.
- När digitala tvilling- eller komponentmetadata ändras. Ett exempel på det här scenariot är att ändra modellen för en digital tvilling.
Egenskaper
Här är fälten i brödtexten i ett meddelande om ändring av digital tvilling.
Name | Värde |
---|---|
id |
Identifierare för meddelandet, till exempel ett UUID eller en räknare som underhålls av tjänsten. source + id är unikt för varje distinkt händelse |
source |
Namnet på IoT Hub- eller Azure Digital Twins-instansen, till exempel myhub.azure-devices.net eller mydigitaltwins.westus2.azuredigitaltwins.net |
data |
Ett JSON-korrigeringsdokument som beskriver uppdateringen av tvillingen. Mer information finns i Brödtextinformation nedan. |
specversion |
1,0 Meddelandet överensstämmer med den här versionen av CloudEvents-specifikationen. |
type |
Microsoft.DigitalTwins.Twin.Update |
datacontenttype |
application/json |
subject |
ID för den digitala tvillingen |
time |
Tidsstämpel för när åtgärden inträffade på den digitala tvillingen |
traceparent |
En W3C-spårningskontext för händelsen |
Brödtextinformation
I meddelandet innehåller fältet data
ett JSON Patch-dokument som innehåller uppdateringen av den digitala tvillingen.
Nedan visas exempel på den här meddelandetypen för varje möjligt meddelandeschema.
{
"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>"
}
Anteckning
Azure Digital Twins stöder för närvarande inte filtreringshändelser baserat på fält i en matris. Detta inkluderar filtrering av egenskaper i ett patch
avsnitt i ett meddelande om ändring av digital tvilling.
Aviseringar om livscykel för digitala tvillingar
Oavsett om digitala tvillingar representerar IoT Hub enheter i Azure Digital Twins eller inte, genererar de alla meddelanden. De gör det på grund av livscykelmeddelanden, som handlar om själva den digitala tvillingen.
Livscykelmeddelanden utlöses när:
- En digital tvilling skapas
- En digital tvilling tas bort
Egenskaper
Här är fälten i brödtexten i ett livscykelmeddelande.
Name | Värde |
---|---|
id |
Identifierare för meddelandet, till exempel ett UUID eller en räknare som underhålls av tjänsten. source + id är unikt för varje distinkt händelse. |
source |
Namnet på IoT Hub- eller Azure Digital Twins-instansen, till exempel myhub.azure-devices.net eller mydigitaltwins.westus2.azuredigitaltwins.net |
data |
Data för tvillingen som upplever livscykelhändelsen. Mer information finns i Brödtextinformation nedan. |
specversion |
1,0 Meddelandet överensstämmer med den här versionen av CloudEvents-specifikationen. |
type |
Microsoft.DigitalTwins.Twin.Create Microsoft.DigitalTwins.Twin.Delete |
datacontenttype |
application/json |
subject |
ID för den digitala tvillingen |
time |
Tidsstämpel för när åtgärden inträffade på tvillingen |
traceparent |
En W3C-spårningskontext för händelsen |
Brödtextinformation
Nedan visas exempel på den här meddelandetypen för varje möjligt meddelandeschema.
{
"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>"
}
Meddelanden om ändring av digital tvilling-relation
Meddelanden om relationsändring utlöses när en relation för en digital tvilling skapas, uppdateras eller tas bort.
Egenskaper
Här är fälten i brödtexten i ett meddelande om relationsändring.
Name | Värde |
---|---|
id |
Identifierare för meddelandet, till exempel ett UUID eller en räknare som underhålls av tjänsten. source + id är unikt för varje distinkt händelse |
source |
Namnet på Azure Digital Twins-instansen, till exempel mydigitaltwins.westus2.azuredigitaltwins.net |
data |
Nyttolasten för relationen som ändrades. Mer information finns i Brödtextinformation nedan. |
specversion |
1,0 Meddelandet överensstämmer med den här versionen av CloudEvents-specifikationen. |
type |
Microsoft.DigitalTwins.Relationship.Create Microsoft.DigitalTwins.Relationship.Update Microsoft.DigitalTwins.Relationship.Delete |
datacontenttype |
application/json |
subject |
ID för relationen, till exempel <twin-ID>/relationships/<relationshipID> |
time |
Tidsstämpel för när åtgärden inträffade i relationen |
traceparent |
En W3C-spårningskontext för händelsen |
Brödtextinformation
I meddelandet innehåller fältet data
nyttolasten för en relation i JSON-format. Den använder samma format som en GET
begäran om en relation via DigitalTwins-API:et.
Nedan visas exempel på den här meddelandetypen för varje möjligt meddelandeschema.
{
"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>"
}
Telemetrimeddelanden för digitala tvillingar
Digitala tvillingar kan använda SendTelemetry-API :et för att generera telemetrimeddelanden och skicka dem till utgående slutpunkter.
Egenskaper
Här är fälten i brödtexten i ett telemetrimeddelande.
Name | Värde |
---|---|
id |
Identifierare för meddelandet, som tillhandahålls av kunden när du anropar telemetri-API:et. |
source |
Fullständigt kvalificerat namn på tvillingen som telemetrihändelsen skickades från. Använder följande format: <your-Digital-Twin-instance>.api.<your-region>.digitaltwins.azure.net/<twin-ID> . |
specversion |
1,0 Meddelandet överensstämmer med den här versionen av CloudEvents-specifikationen. |
type |
microsoft.iot.telemetry |
data |
Telemetrimeddelandet som skickas från tvillingen. Nyttolasten behöver inte anpassas till något schema som definierats i din Azure Digital Twins-instans. |
dataschema |
Dataschemat är modell-ID:t för tvillingen eller komponenten som genererar telemetrin. Till exempel dtmi:example:com:floor4;2 . |
datacontenttype |
application/json |
traceparent |
En W3C-spårningskontext för händelsen. |
Brödtextinformation
Brödtexten innehåller telemetrimåttet tillsammans med viss kontextuell information om tvillingen. Nedan visas exempel på den här meddelandetypen för varje möjligt meddelandeschema.
{
"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>"
}
Nästa steg
Lär dig mer om att leverera händelser till olika mål med hjälp av slutpunkter och vägar: