Notifications d’événement
Cet article traite des notifications d’événements générées par Azure Digital Twins, leur structure et des détails sur les différents types qui peuvent être générés.
Dans Azure Digital Twins, plusieurs événements peuvent produire des notifications. Celles-ci permettent au back-end de la solution de savoir quand des actions se produisent. Ces notifications sont ensuite routées vers différents emplacements, à l’intérieur et à l’extérieur d’Azure Digital Twins, qui peuvent utiliser ces informations pour prendre des mesures.
Plusieurs types de notifications peuvent être générés. En outre, les messages de notification peuvent être différents selon le type d’événement qui les a générés. Cet article donne des détails sur les différents types de messages, ainsi que sur leur aspect.
Ce graphique montre les différents types de notifications :
Type de notification | Nom de la source de routage | Généré à partir de… |
---|---|---|
Notification de modification du jumeau numérique | Notification de modification du jumeau numérique | Toute modification de propriété du jumeau numérique |
Notification de cycle de vie du jumeau numérique | Notification de cycle de vie du jumeau numérique | Toute opération de création ou de suppression de jumeau numérique |
Notification de modification de relation du jumeau numérique | Notification de modification de relation du jumeau numérique | Modification de relation du jumeau numérique |
Messages de télémétrie du jumeau numérique | Messages de télémétrie | Tout message de télémétrie |
Structure de notification
La structure d’une notification d’événement à partir d’Azure Digital Twins dépend de la destination de la notification.
Les notifications envoyées à Event Grid sont conformes à l’un des formats suivants (en fonction des paramètres Event Grid) :
- Schéma d’événement Azure Event Grid
- Liaison de protocole HTTP pour CloudEvents.
Les notifications envoyées à Event Hubs et Service Bus sont conformes à la liaison de protocole AMQP pour CloudEvents.
Notification de changement du jumeau numérique
Les notifications de changement de jumeau numérique sont déclenchées lors de la mise à jour d’un jumeau numérique, par exemple :
- Lorsque les valeurs de propriété ou les métadonnées sont modifiées.
- En cas de modification des métadonnées d’un jumeau numérique ou d’un composant. C’est le cas, par exemple, lorsque vous changez le modèle d’un jumeau numérique.
Propriétés
Voici les champs compris dans le corps d’une notification de modification d’un jumeau numérique.
Nom | Valeur |
---|---|
id |
Identificateur de la notification, tel qu’un UUID ou un compteur géré par le service. source + id est unique pour chaque événement. |
source |
Nom de l’instance IoT Hub ou Azure Digital Twins, par exemple myhub.azure-devices.net ou mydigitaltwins.westus2.azuredigitaltwins.net |
data |
Document de correctif JSON décrivant la mise à jour apportée au jumeau. Pour plus d’informations, consultez les Détails du corps ci-dessous. |
specversion |
1.0 Le message est conforme à cette version de la spécification CloudEvents. |
type |
Microsoft.DigitalTwins.Twin.Update |
datacontenttype |
application/json |
subject |
ID du jumeau numérique |
time |
Horodatage du moment où l’opération s’est produite au niveau du jumeau numérique |
traceparent |
Contexte de trace W3C pour l’événement |
Détails du corps
Dans le message, le champ data
contient un document de correctif JSON contenant la mise à jour du jumeau numérique.
Vous trouverez ci-dessous des exemples de ce type de message pour chaque schéma de notification possible.
{
"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>"
}
Remarque
Azure Digital Twins ne prend actuellement pas en charge le filtrage d’événements basés sur les champs d’un tableau. Cela comprend le filtrage des propriétés au sein d’une section patch
d’une notification de modification de jumeau numérique.
Notifications de cycle de vie de jumeaux numériques
Tous les jumeaux numériques émettent des notifications, qu’ils représentent ou non des appareils IoT Hub dans Azure Digital Twins. Ceci est dû aux notifications de cycle de vie, qui concernent uniquement le jumeau numérique.
Des notifications de cycle de vie sont déclenchées dans les cas suivants :
- La création d’un jumeau numérique
- La suppression d’un jumeau numérique
Propriétés
Voici les champs compris dans le corps d’une notification de cycle de vie.
Nom | Valeur |
---|---|
id |
Identificateur de la notification, tel qu’un UUID ou un compteur géré par le service. source + id est unique pour chaque événement. |
source |
Nom de l’instance IoT Hub ou Azure Digital Twins, par exemple myhub.azure-devices.net ou mydigitaltwins.westus2.azuredigitaltwins.net |
data |
Les données du jumeau numérique qui rencontre l’événement du cycle de vie. Pour plus d’informations, consultez les Détails du corps ci-dessous. |
specversion |
1.0 Le message est conforme à cette version de la spécification CloudEvents. |
type |
Microsoft.DigitalTwins.Twin.Create Microsoft.DigitalTwins.Twin.Delete |
datacontenttype |
application/json |
subject |
ID du jumeau numérique |
time |
Horodatage du moment où l’opération s’est produite au niveau du jumeau |
traceparent |
Contexte de trace W3C pour l’événement |
Détails du corps
Vous trouverez ci-dessous des exemples de ce type de message pour chaque schéma de notification possible.
{
"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>"
}
Notifications de modification d’une relation de jumeau numérique
Les notifications de modification de relation sont déclenchées lorsqu’une relation d’un jumeau numérique est créée, mise à jour ou supprimée.
Propriétés
Voici les champs du corps d’une notification de modification d’une relation.
Nom | Valeur |
---|---|
id |
Identificateur de la notification, tel qu’un UUID ou un compteur géré par le service. source + id est unique pour chaque événement. |
source |
Nom de l’instance Azure Digital Twins, comme mydigitaltwins.westus2.azuredigitaltwins.net |
data |
Charge utile de la relation qui a été modifiée. Pour plus d’informations, consultez les Détails du corps ci-dessous. |
specversion |
1.0 Le message est conforme à cette version de la spécification CloudEvents. |
type |
Microsoft.DigitalTwins.Relationship.Create Microsoft.DigitalTwins.Relationship.Update Microsoft.DigitalTwins.Relationship.Delete |
datacontenttype |
application/json |
subject |
ID de la relation, comme <twin-ID>/relationships/<relationshipID> |
time |
Horodatage du moment où l’opération s’est produite au niveau de la relation |
traceparent |
Contexte de trace W3C pour l’événement |
Détails du corps
Dans le message, le champ data
contient la charge utile d’une relation, au format JSON. Il utilise le même format qu’une requête GET
pour une relation via l’API DigitalTwins.
Vous trouverez ci-dessous des exemples de ce type de message pour chaque schéma de notification possible.
{
"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>"
}
Messages de télémétrie du jumeau numérique
Les jumeaux numériques peuvent utiliser l’API SendTelemetry pour émettre des messages de télémétrie et les envoyer aux points de terminaison de sortie.
Propriétés
Voici les champs compris dans le corps d’un message de télémétrie.
Nom | Valeur |
---|---|
id |
Identificateur de la notification, fourni par le client lors de l’appel de l’API de télémétrie. |
source |
Nom complet du jumeau numérique depuis lequel l’événement de télémétrie a été envoyé. Utilisez le format suivant : <your-Digital-Twin-instance>.api.<your-region>.digitaltwins.azure.net/<twin-ID> . |
specversion |
1.0 Le message est conforme à cette version de la spécification CloudEvents. |
type |
microsoft.iot.telemetry |
data |
Message de télémétrie envoyé à partir du jumeau. La charge utile n’a pas besoin d’être alignée sur un schéma défini dans votre instance Azure Digital Twins. |
dataschema |
le schéma de données est l'ID de modèle du jumeau ou du composant qui émet les données de télémétrie. Par exemple : dtmi:example:com:floor4;2 . |
datacontenttype |
application/json |
traceparent |
Contexte de trace W3C pour l’événement. |
Détails du corps
Le corps contient la mesure de télémétrie, ainsi que des informations contextuelles sur le jumeau. Vous trouverez ci-dessous des exemples de ce type de message pour chaque schéma de notification possible.
{
"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>"
}
Étapes suivantes
En savoir plus sur la transmission d’événements à différentes destinations, à l’aide des points de terminaison et des itinéraires :