Acheminer des événements Azure Digital Twins
Cet article décrit le processus utilisé par Azure Digital Twins pour envoyer des données d’événement, à la fois pour le routage d’événements en interne dans Azure Digital Twins et pour l’envoi de données d’événement en externe à des services en aval ou à des ressources de calcul connectées en dehors du service.
Le routage de notifications d’événements depuis Azure Digital Twins est un processus en deux étapes : créer des points de terminaison, puis créer des routes d’événements pour envoyer des données à ces points de terminaison. Cet article décrit plus en détail chacun de ces concepts. Il explique également ce qui se produit quand un point de terminaison ne parvient pas à livrer un événement à temps (processus appelé lettres mortes).
Vue d’ensemble du routage des événements
Il existe deux scénarios principaux pour l’envoi de données Azure Digital Twins. Les routes d’événements sont utilisés pour ces deux scénarios :
- Envoi de données d’événement d’un jumeau dans le graphique Azure Digital Twins vers un autre. Par exemple, lorsqu’une propriété au sein d’un jumeau numérique change, vous souhaiterez peut-être notifier et mettre à jour un autre jumeau numérique sur la base des données mises à jour.
- Envoi de données en dehors d’Azure Digital Twins vers des services de données en aval à des fins de stockage ou de traitement supplémentaires. Si vous utilisez déjà Azure Maps par exemple, vous pouvez fournir des données Azure Digital Twins pour améliorer votre solution avec la modélisation ou les requêtes intégrées.
Pour toute destination d’événement, une route d’événement fonctionne en envoyant des données d’événement d’Azure Digital Twins à des points de terminaison à définition personnalisée dans vos abonnements. Trois services Azure sont actuellement pris en charge pour les points de terminaison : Event Hubs, Event Grid et Service Bus. Chacun de ces services Azure peut être connecté à d’autres services et agir en tant qu’intermédiaire, en envoyant des données aux destinations finales, comme Azure Maps, ou en les renvoyant vers Azure Digital Twins pour des mises à jour des graphiques dépendants.
Le diagramme suivant illustre le flux des données d’événements dans une solution IoT plus vaste, qui comprend l’envoi de données Azure Digital Twins via des points de terminaison vers d’autres services Azure, ainsi que vers Azure Digital Twins :
Pour la sortie de données en dehors d’Azure Digital Twins, les cibles en aval classiques des routes d’événements sont Azure Maps, le stockage et les solutions d’analytique. Azure Digital Twins implémente au moins une fois la livraison des données émises vers les services de sortie.
Pour le routage des événements de jumeau numérique internes dans la même solution Azure Digital Twins, passez à la section suivante.
Acheminer les événements de jumeau numérique internes
Les routes d’événements sont le mécanisme utilisé pour gérer les événements au sein du graphe de jumeaux, en envoyant des données d’un jumeau numérique à un jumeau numérique. Pour ce faire, vous pouvez connecter des itinéraires d’événements aux ressources de calcul via Event Grid, telles que les Fonctions Azure. Ces fonctions définissent ensuite la façon dont les représentations reçoivent les événements et y répondent.
Quand une ressource de calcul souhaite modifier le graphique du jumeau en fonction d’un événement reçu via une route d’événement, il est utile de connaître préalablement le type de jumeau à modifier. Le message d’événement contient également l’ID du jumeau source ayant envoyé le message. La ressource de calcul peut donc utiliser des requêtes ou parcourir les relations pour trouver un jumeau cible pour l’opération souhaitée.
La ressource de calcul doit également établir des autorisations de sécurité et d’accès de façon indépendante.
Afin de passer en revue le processus de configuration d’une fonction Azure pour traiter les événements de jumeau numérique, consultez Configurer la gestion des événements entre jumeaux.
Création de points de terminaison
Pour définir une route d’événement, les développeurs doivent d’abord définir des points de terminaison. Un point de terminaison est une destination en dehors d’Azure Digital Twins qui prend en charge une connexion d’itinéraire. Parmi les destinations prises en charge figurent :
- Rubriques personnalisées Event Grid
- Event Hubs
- Service Bus
Pour créer un point de terminaison, vous pouvez utiliser les API REST, les commandes CLI ou le portail Azure avec Azure Digital Twins.
Lorsque vous définissez un point de terminaison, vous devez fournir les éléments suivants :
- Le nom du point de terminaison
- Le type de point de terminaison (Event Grid, Event Hubs ou Service Bus)
- Les chaînes de connexion primaire et secondaire pour l’authentification
- Le chemin d’accès de rubrique du point de terminaison, par exemple
your-topic.westus2.eventgrid.azure.net
Si vous le souhaitez, vous pouvez choisir de créer votre point de terminaison avec une authentification basée sur l’identité, pour utiliser le point de terminaison avec une identité managée affectée par le système ou affectée par l’utilisateur. Cette option est uniquement disponible pour les points de terminaison de type Event Hubs et Service Bus (elle n’est pas prise en charge pour Event Grid).
Les API de point de terminaison disponibles dans le plan de contrôle sont les suivantes :
- Création d’un point de terminaison
- Obtention de la liste des points de terminaison
- Obtention d’un point de terminaison par son nom
- Suppression d’un point de terminaison par son nom
Pour obtenir des instructions sur la création d’un point de terminaison, consultez Créer des points de terminaison.
Créer des routes d’événements
Pour créer une route d'événement, vous pouvez utiliser les API REST, les commandes CLI ou le portail Azure avec Azure Digital Twins.
Voici un exemple de création d’un itinéraire d’événement dans une application cliente à l’aide de l’appel CreateOrReplaceEventRouteAsync
du Kit de développement logiciel (SDK) .NET (C#) :
string eventFilter = "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
var er = new DigitalTwinsEventRoute("endpointName", eventFilter);
await client.CreateOrReplaceEventRouteAsync("routeId", er);
Tout d’abord, un objet
DigitalTwinsEventRoute
est créé, et le constructeur prend le nom d’un point de terminaison. Ce champendpointName
identifie un point de terminaison, comme Event Hubs, Event Grid ou Service Bus. Ces points de terminaison doivent être créés dans votre abonnement et attachés à Azure Digital Twins à l’aide des API de plan de contrôle avant d’effectuer cet appel d’inscription.L’objet de la route d’événement comporte également un champ Filtre, qui peut être utilisé pour restreindre les types d’événements qui suivent cette route. Un filtre
true
active l’itinéraire sans filtrage supplémentaire (un filtrefalse
désactive l’itinéraire).Cet objet de route d’événement est ensuite transmis à
CreateOrReplaceEventRouteAsync
, ainsi qu’un nom pour la route.
Conseil
Toutes les fonctions du Kit de développement logiciel (SDK) sont disponibles en versions synchrone et asynchrone.
Pour obtenir des instructions détaillées sur la création de routes d’événements, consultez Créer des routes et des filtres.
Événements de lettres mortes
Lorsqu’un point de terminaison ne peut pas remettre un événement dans un laps de temps donné ou après avoir essayé de remettre l’événement à plusieurs reprises, il peut envoyer l’événement non remis à un compte de stockage. Ce processus est appelé mise en file d’attente de lettres mortes. Azure Digital Twins mettra un événement en file d’attente de lettres mortes lorsque l’une des conditions suivantes est remplie :
- L’événement n’est pas remis dans la période de durée de vie
- Le nombre de tentatives de remise de l’événement a dépassé la limite
Si l’une des conditions est remplie, l’événement est abandonné ou mis en file d’attente de lettres mortes. Par défaut, chaque point de terminaison n’active pas la mise en file d’attente de lettres mortes. Pour l’activer, vous devez spécifier le compte de stockage dans lequel les événements non remis seront conservés au moment de créer le point de terminaison. Vous pouvez ensuite extraire les événements de ce compte de stockage pour résoudre les remises.
Avant de définir l’emplacement des lettres mortes, vous devez disposer d’un compte de stockage avec un conteneur. Vous devez indiquer l’URL de ce conteneur au moment de créer le point de terminaison. La mise en file d’attente de lettres mortes est fournie sous la forme d’une URL de conteneur avec un jeton SAP. Ce jeton n’a besoin que de l’autorisation write
pour le conteneur de destination dans le compte de stockage. L’URL complète sera au format : https://<storage-account-name>.blob.core.windows.net/<container-name>?<SAS-token>
Pour en savoir plus sur les jetons SAS, consultez : Accorder un accès limité aux ressources du Stockage Azure à l’aide des signatures d’accès partagé (SAP)
Pour savoir comment configurer un point de terminaison avec mise en file d’attente de lettres mortes, consultez Options des points de terminaison : mise en file d’attente de lettres mortes.
Types de messages d'événements
Les différents types d’événements dans IoT Hub et Azure Digital Twins produisent différents types de messages de notification, comme décrit ci-dessous.
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 |
Étapes suivantes
Passez aux instructions pas à pas pour configurer les points de terminaison et les routes d’événements :
Cette procédure pas à pas vous permet également de configurer une fonction Azure pour la gestion des événements entre jumeaux dans Azure Digital Twins :