Partager via


Azure IoT Hub en tant que source Event Grid

Cet article fournit les propriétés et les schémas des événements IoT Hub. Pour une présentation des schémas d’événements, consultez Schéma d’événements Azure Event Grid.

Types d’événement disponibles

IoT Hub émet les types d’événements suivants :

Type d'événement Description
Microsoft.Devices.DeviceCreated Publié quand un appareil est inscrit auprès d’un hub IoT.
Microsoft.Devices.DeviceDeleted Publié quand un appareil est supprimé d’un hub IoT.
Microsoft.Devices.DeviceConnected Publié quand un appareil est connecté à un hub IoT.
Microsoft.Devices.DeviceDisconnected Publié quand un appareil est déconnecté d’un hub IoT.
Microsoft.Devices.DeviceTelemetry Publié quand un message de télémétrie est envoyé à un hub IoT.

Exemple d’événement

Les schémas pour les événements DeviceConnected et DeviceDisconnected ont la même structure. Cet exemple d’événement montre le schéma d’un événement déclenché quand un appareil est connecté à un hub 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"
}]

L’événement DeviceTelemetry est déclenché quand un événement de télémétrie est envoyé à un hub IoT. Voici un exemple de schéma pour cet événement.

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

Les schémas pour les événements DeviceCreated et DeviceDeleted ont la même structure. Cet exemple d’événement montre le schéma d’un événement déclenché quand un appareil est inscrit auprès d’un hub 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"
}]

Propriétés d’événement

Tous les événements contiennent les mêmes données de niveau supérieur :

Propriété Type Description
id string Identificateur unique de l’événement.
source string Chemin d’accès complet à la source de l’événement. Ce champ n’est pas modifiable. Event Grid fournit cette valeur.
subject string Chemin de l’objet de l’événement, défini par le serveur de publication.
type string Un des types d’événements inscrits pour cette source d’événement.
time string L’heure à quelle l’événement est généré selon l’heure UTC du fournisseur.
data object Données d’événement IoT Hub.
specversion string Version de la spécification de schéma CloudEvents.

Pour tous les événements IoT Hub, l’objet de données contient les propriétés suivantes :

Propriété Type Description
hubName string Nom du hub IoT où l’appareil a été créé ou supprimé.
deviceId string Identificateur unique de l’appareil. Cette chaîne qui respecte la casse peut contenir jusqu’à 128 caractères et prend en charge les caractères alphanumériques 7 bits ASCII, ainsi que les caractères spéciaux suivants :- : . + % _ # * ? ! ( ) , = @ ; $ '.

Le contenu de l’objet de données est différent pour chaque serveur de publication d’événements.

Pour les événements IoT Hub DeviceConnected et DeviceDisconnected, l’objet de données contient les propriétés suivantes :

Propriété Type Description
moduleId string Identificateur unique du module. Ce champ est sorti uniquement pour les appareils de module. Cette chaîne qui respecte la casse peut contenir jusqu’à 128 caractères et prend en charge les caractères alphanumériques 7 bits ASCII, ainsi que les caractères spéciaux suivants :- : . + % _ # * ? ! ( ) , = @ ; $ '.
deviceConnectionStateEventInfo object Informations d’événement sur l’état de connexion d’appareil
sequenceNumber string Un numéro qui vous aide à indiquer l’ordre des événements de connexion et de déconnexion d’appareils. Le dernier événement aura un numéro de séquence plus élevé que l’événement précédent. Ce numéro peut changer de plus d’une unité, mais il ne peut qu’augmenter. Consultez comment utiliser le numéro de séquence.

Pour l’événement IoT Hub DeviceTelemetry, l’objet de données contient le message appareil-à-cloud au format des messages IoT Hub et a les propriétés suivantes :

Propriété Type Description
body string Contenu du message reçu de l’appareil.
properties string Les propriétés de l’application sont des chaînes définies par l’utilisateur qui peuvent être ajoutées au message. Ces champs sont facultatifs.
system properties string Les propriétés système permettent d’identifier le contenu et la source des messages. Le message de télémétrie d’appareil doit être dans un format JSON valide avec contentType défini sur JSON et contentEncoding défini sur UTF-8 dans les propriétés système du message. S’il n’est pas défini, IoT Hub écrit les messages dans un format codé base-64.

Pour les événements IoT Hub DeviceCreated et DeviDeleted, l’objet de données contient les propriétés suivantes :

Propriété Type Description
twin object Informations sur le jumeau d’appareil, qui est la représentation cloud des métadonnées d’appareil de l’application.
deviceID string Identificateur unique du jumeau d’appareil.
etag string Un validateur pour garantir la cohérence des mises à jour à un jumeau d'appareil. Chaque etag est unique pour chaque jumeau d’appareil.
deviceEtag string Un validateur pour garantir la cohérence des mises à jour à un registre d'appareil. Chaque deviceEtag est unique pour chaque registre d’appareil.
status string Indique si le jumeau d’appareil est activé ou désactivé.
statusUpdateTime string Horodatage ISO8601 de la dernière mise à jour de l’état du jumeau d’appareil.
connectionState string Indique si l’appareil est connecté ou déconnecté.
lastActivityTime string Horodatage ISO8601 de la dernière activité.
cloudToDeviceMessageCount entier Nombre de messages cloud-à-appareil envoyés à cet appareil.
authenticationType string Type d’authentification utilisé pour cet appareil : SAS, SelfSigned ou CertificateAuthority.
x509Thumbprint string L’empreinte numérique est une valeur unique pour le certificat x509, et sert généralement à rechercher un certificat particulier dans un magasin de certificats. L’empreinte numérique, générée dynamiquement à l’aide de l’algorithme SHA-1, n’existe pas physiquement dans le certificat.
primaryThumbprint string Empreinte numérique principale pour le certificat x509.
secondaryThumbprint string Empreinte numérique secondaire pour le certificat x509.
version entier Entier qui est incrémenté chaque fois que le jumeau d’appareil est mis à jour.
desired object Une partie des propriétés qui peuvent être écrites uniquement par le backend d’application et lues par l’appareil.
reported object Une partie des propriétés qui peuvent être écrites uniquement par l’appareil et lues par le backend d’application.
lastUpdated string Horodatage ISO8601 de la dernière mise à jour de la propriété du jumeau d’appareil.

Tutoriels et articles de procédures

Intitulé Description
Envoyer des notifications par e-mail sur des événements Azure IoT Hub à l’aide de Logic Apps Une application logique envoie un e-mail de notification chaque fois qu’un appareil est ajouté à votre hub IoT.
Réagir aux événements IoT Hub en utilisant Event Grid pour déclencher des actions Vue d’ensemble de l’intégration de hubs IoT à Event Grid.
Commander des événements d’état de la connexion et de la déconnexion d’appareils Montre comment commander des événements d’état de la connexion d’appareils.

Étapes suivantes