Les bons événements au bon endroit avec Event Domains

Publié le 31 octobre, 2018

Program Manager, Event Grid

À mesure que notre communauté grandit autour d’Event Grid, nombreux sont ceux parmi vous qui ont commencé à explorer les limites de la complexité et de la mise à l’échelle qui sont possibles. Nous avons été impressionnés par certaines des architectures système conçues à partir de la plateforme.

Afin de vous faciliter les choses dans certains de ces scénarios, nous avons décidé de consacrer la plus grande part des deux derniers mois à concevoir deux fonctionnalités que nous sommes fiers de présenter aujourd’hui : les filtres avancés et Event Domains, une plateforme managée pour la publication d’événements à destination de tous vos clients. En outre, nous avons travaillé à l’amélioration de l’expérience de développement et à la mise à disposition d’Event Grid dans les régions Azure Government.

Event Domains

Soyez vous-même la source des événements Event Grid avec Event Domains et gérez le flux des événements personnalisés vers vos unités organisationnelles, vos clients ou vos applications. Event Domain est tout simplement un outil de gestion pour les grands volumes de sujets Event Grid relatifs à une application, un artefact de haut niveau qui contient des milliers de sujets. Avec un domaine, vous bénéficiez d’autorisations détaillées et du contrôle de l’authentification sur chaque sujet via Azure Active Directory, ce qui vous permet de décider lesquels parmi vos abonnés ou vos clients peut s’abonner à chaque sujet. Event Domains gère également le partitionnement à votre place. Plutôt que de devoir publier vos événements dans chaque sujet un par un, vous pouvez publier tous vos événements sur le point de terminaison du domaine, et Event Grid s’assure que chaque événement est envoyé au sujet correspondant.

Il s’agit là d’une fonctionnalité unique à Event Grid qui ouvre de nouvelles perspectives pour vous et vos partenaires. Vous pourrez proposer vos propres événements à vos clients finaux.

Avec Event Domains, nous utilisons l’architecture sous-jacente fournie par Azure, comme le Stockage Blob Azure ou IoT Hub, pour publier des événements et les mettre à votre disposition. Vous pouvez donc désormais utiliser une seule instance Event Domains pour gérer tous les événements de publication destinés à vos clients finaux ou aux différents intervenants dans une organisation complexe avec des services indépendants.

Il est peut-être plus simple de partir d’un exemple pour expliquer Event Domains. Disons que votre société Contoso Construction Machinery produit des pelleteuses, des excavatrices et autres engins de terrassement. Dans le cadre de la gestion de votre entreprise, vous envoyez des informations en temps réel à vos clients sur la maintenance des machines, l’état des systèmes et les mises à jour de vos contrats. Tout ceci est envoyé vers différents points de terminaison, par exemple votre application, les points de terminaison côté client ou toute autre infrastructure que les clients ont pu mettre en place.

Event Domains vous permet de modéliser Contoso Construction Machinery en une seule entité source d’événements. Chaque client est représenté par un sujet dans le domaine, qui gère l’authentification et les autorisations via Azure Active Directory. Vous n’avez donc pas à vous préoccuper de cet aspect. Chaque client peut dès lors s’abonner à son sujet pour recevoir les événements qui lui sont destinés et AAD et Event Domains l’empêchent d’accéder au sujet des autres abonnés.

Ceci vous offre aussi un point de terminaison unique dans lequel vous pouvez publier tous les événements associés au client, Event Grid s’assurant alors que chaque sujet est averti des événements concernant son abonné.

Grille Event Domains de Contoso Construction Machinery

Dans un monde où l’architecture des applications s’oriente de plus en plus vers les modèles de programmation objet, la compatibilité avec les notifications vers les points de terminaison HTTP, les applications et les services cloud est de plus en plus importante. Event Domains gère tous les événements pour vous et vous devez uniquement vous occuper de savoir quels événements vous mettez à disposition de vos clients.

Utilisez Event Domains pour :

  • Gérer des architectures d’événements à grande échelle avec abonnés multiples.
  • Gérer les authentifications et les autorisations.
  • Partitionner les sujets sans avoir à les gérer de façon individuelle.
  • Éviter de publier les sujets dans chaque point de terminaison un par un.

Plus d’informations sur Event Domains dans notre documentation et commencez par cet exemple.

Filtres avancés Event Grid

En complément des nouvelles capacités Event Domains, nous sommes tout aussi fiers de vous annoncer qu’Event Grid prend désormais en charge de nouveaux types de filtres avancés, et ce dès aujourd’hui ! Ces nouveaux filtres permettent d’appliquer en direct de nouveaux types de filtrage, dont les filtres numérique, de chaîne et booléen.

Avec cette mise à jour, nous ajoutons un certain nombre d’opérateurs sur chaque type de données et nous augmentons largement le nombre de champs sur lesquels vous pouvez les appliquer. Vous bénéficiez ainsi d’un meilleur contrôle sur le routage des événements pour que seuls ceux qui en ont besoin arrivent aux services de calcul qui les gèrent. Les filtres avancés permettent aussi de filtrer sur les propriétés de l’enveloppe (par exemple DataVersion, Id et Topic), ainsi que sur la première couche de la charge utile de données (par exemple data.key1). Les opérateurs suivants ont été ajoutés par type de données :

Nombres

  • NumberLessThan
  • NumberLessThanOrEquals
  • NumberGreaterThan
  • NumberGreaterThanOrEquals
  • NumberIn : la valeur de data.key est égale à une valeur dans le jeu de valeurs [0; 2,08; 3,14]
  • NumberNotIn : la valeur de data.key ne se trouve pas dans le jeu de valeurs [1, 11, 112, 1124]

Chaînes

  • StringContains : la valeur de data.key contient « portez »
  • StringIn : la valeur de data.key est égale à une valeur dans le jeu de données [« portez », « whisky », « juge »]
  • StringNotIn : la valeur de data.key est égale à une valeur dans le jeu de données [« blond », « vieux », « fume »]
  • StringBeginsWith : la valeur de data.key commence par « portez »
  • StringBeginsWith : la valeur de data.key se termine par « fume »

Booléen

  • BoolEquals

Finis les scripts supplémentaires pour filtrer vos événements avant d’appliquer la logique métier. Avec les nouveaux filtres, vous pouvez créer de nouvelles combinaisons de filtres en direct, pour que vos gestionnaires d’événements n’aient à gérer que les données qui les concernent.

Plus d’informations sur les capacités de filtrage avancé d’Event Grid dans notre documentation.

Disponibilité des régions Azure Government

À compter du 1er novembre 2018, Event Grid est disponible dans les régions US Gov Arizona, Texas et Virginia. Toutes les fonctionnalités Event Grid (dont les sujets personnalisés, le filtrage et les lettres mortes) seront disponibles immédiatement. Cependant, les événements intégrés provenant de services Azure, comme Stockage Azure, ne seront pas immédiatement disponibles. Ces sources d’événements intégrées sont déjà en préparation pour ces régions et seront progressivement ajoutées au cours des prochains mois. Event Grid sera donc au départ en préversion publique dans les régions US Gov jusqu’à ce que nous ayons ajouté les capacités restantes au service. Si vous avez des questions ou des besoins concernant certains serveurs de publication d’événements, n’hésitez pas à contacter l’équipe.

Améliorations de l’expérience de développement

Enfin, nous travaillons en permanence à de petites améliorations et nouveautés qui vous facilitent les opérations de test et de développement. Ainsi, nous avons mis à jour certains de nos SDK, nous avons ajouté un temps d’activation pour les abonnements aux événements et nous avons ajouté une interface utilisateur au portail pour la configuration des lettres mortes et des stratégies de nouvelles tentatives.

Lettres mortes et stratégies de nouvelles tentatives dans le portail Azure

Vous pouvez dès à présent cliquer sur l’onglet « Fonctionnalités supplémentaires » en haut de l’écran chaque fois que vous créez un abonnement à un événement. Dans cette page, vous aurez accès à la stratégie de gestion des nouvelles tentatives et à la configuration des lettres mortes, ainsi qu’aux filtres et à toutes les nouvelles fonctionnalités que nous allons ajouter. Un mode éditeur avancé affiche la représentation ARM de votre abonnement pour pouvoir l’utiliser dans un modèle ARM et configurer de nouvelles fonctionnalités qui ne sont pas encore disponibles dans le portail.

Durée de vie des abonnements aux événements

Les ressources éphémères peuvent être utiles pour de nombreuses raisons. Elles renforcent l’hygiène lors des tests en nettoyant les ressources les plus anciennes, elles appliquent la sécurité en empêchant les ressources de publier sans arrêt et elles assurent la fraîcheur des configurations en s’assurant que seules les ressources qui s’abonnent elles-mêmes aux événements continuent à les recevoir. Avec la durée de vie de l’abonnement aux événements, vous pouvez maintenant configurer au moment de la création une durée de vie au terme de laquelle l’abonnement est automatiquement effacé.

Nouveautés des SDK

Nous avons mis à jour les SDK .NET, Java et Go pour faciliter la consommation des événements Azure natifs. Dans la dernière version de chacun de ces SDK, tous les types d’événements disponibles publiés par Azure sont reconnus. Vous pouvez donc utiliser le module eventGridSubscriber d’Event Grid pour désérialiser directement les événements pour tous les types d’événements connus et commencer à écrire le code en fonction du contenu de l’événement, plutôt que d’avoir d’abord à gérer manuellement la désérialisation du JSON en différentes classes de types d’événements. Consultez les différents SDK pour savoir comment gérer plus facilement vos ressources et vos événements Event Grid.