Partager via


Event Grid et fiabilité

Azure Event Grid vous permet de créer facilement des applications avec les architectures basées sur des événements. Cette solution dispose d’une prise en charge intégrée pour les événements provenant des services Azure, tels que les objets BLOB de stockage et les groupes de ressources. Event Grid dispose également d’une prise en charge pour vos propres événements, à l’aide de rubriques personnalisées.

Pour plus d’informations sur l’utilisation de Event Grid, consultez Créer et acheminer des événements personnalisés avec Azure Event Grid.

Pour comprendre comment l’utilisation de Event Grid crée une charge de travail plus fiable, référencez Récupération d’urgence géographique côté serveur dans Azure Event Grid.

Les sections suivantes sont spécifiques à Azure Event Grid et à la fiabilité :

  • Considérations sur la conception
  • Liste de contrôle de la configuration
  • Options de configuration recommandées
  • Artefacts sources

Considérations sur la conception

Azure Event Grid fournit un contrat SLA de temps d’activité. Pour plus d’informations, consultez SLA pour Event Grid.

Liste de contrôle

Avez-vous configuré Azure Event Grid avec la fiabilité à l’esprit ?

  • Déployez une instance de Event Grid par région, dans le cas d’une solution Azure à plusieurs régions.
  • Surveillez Event Grid pour la remise d’événements ayant échoué.
  • Utilisez des événements par lot.
  • La taille des lots d’événements ne peut pas dépasser 1MB.
  • Configurez et optimisez la sélection de la taille des lots pendant le test de charge.
  • Vérifiez que les messages Event Grid sont acceptés avec HTTP 200-204 des réponses uniquement si vous fournissez à un point de terminaison qui contient du code personnalisé.
  • Surveillez Event Grid pour la publication d’événements ayant échoué.

Recommandations relatives à la configuration

Tenez compte des recommandations suivantes pour optimiser la fiabilité lors de la configuration d’Azure Event Grid :

Recommandation Description
Surveillez Event Grid pour la remise d’événements ayant échoué. La mesure Delivery Failed augmente à chaque fois qu’un message ne peut pas être remis à un gestionnaire d’événements (délai d’attente ou code d’état non-200-204 HTTP). Si un événement ne peut pas être perdu, configurez un compte de stockage de la file d’attente de lettres mortes (DLQ). Un compte lettres mortes est l’endroit où les événements ne peuvent pas être remis une fois le nombre maximal de tentatives passé. Si vous le souhaitez, implémentez un système de notification sur le compte de stockage lettres mortes, par exemple, en gérant un événement nouveau fichier via Event Grid.
Utilisez des événements par lot dans des scénarios à débit élevé. Le service fournira un tableau json avec plusieurs événements aux abonnés, au lieu d’un tableau avec un événement. L’application consommatrice doit être en mesure de traiter ces tableaux.
La taille des lots d’événements ne peut pas dépasser 1MB. Si la charge utile du message est importante, un seul ou plusieurs messages peuvent être contenus dans le lot. Le service consommateur doit traiter plus de lots d’événements. Si votre événement a une charge utile importante, envisagez de le stocker ailleurs, par exemple dans le stockage d’objets blob, et de passer une référence dans l’événement. Lors de l’intégration à des services tiers via le schéma CloudEvents, il n’est pas recommandé de dépasser les événements 64KB.
Configurez et optimisez la sélection de la taille des lots pendant le test de charge. La sélection de la taille du lot dépend de la taille de la charge utile et du volume du message.
Surveillez Event Grid pour la publication d’événements ayant échoué. La métrique Unmatched affiche les messages qui sont publiés, mais qui ne correspondent à aucun abonnement. Selon l’architecture de votre application, cette dernière peut être intentionnelle.

Artefacts sources

Pour déterminer le type de schéma d’entrée pour toutes les rubriques de Event Grid disponibles, utilisez la requête suivante :

Resources 
| where type == 'microsoft.eventgrid/topics'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']

Pour récupérer l'ID de ressource des points de terminaison privés existants pour les domaines Event Grid, utilisez la requête suivante :

Resources 
| where type == 'microsoft.eventgrid/domains' and notnull(properties['privateEndpointConnections']) 
| mvexpand properties['privateEndpointConnections'] 
| project-rename privateEndpointConnections = properties_privateEndpointConnections 
| project name, resourceGroup, location, subscriptionId, privateEndpointConnections['properties']['privateEndpoint']['id']

Pour identifier l’état de l’accès réseau public pour tous les domaines Event Grid disponibles, utilisez la requête suivante :

Resources 
| where type == 'microsoft.eventgrid/domains' 
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']

Pour identifier les règles de pare-feu pour tous les domaines Event Grid publics, utilisez la requête suivante :

Resources 
| where type == 'microsoft.eventgrid/domains' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']

Pour identifier les règles de pare-feu pour toutes les rubriques Event Grid publiques, utilisez la requête suivante :

Resources 
| where type == 'microsoft.eventgrid/topics' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']

Pour récupérer l'ID de ressource des points de terminaison privés existants pour les rubriques Event Grid, utilisez la requête suivante :

Resources 
| where type == 'microsoft.eventgrid/topics' and notnull(properties['privateEndpointConnections']) 
| mvexpand properties['privateEndpointConnections'] 
| project-rename privateEndpointConnections = properties_privateEndpointConnections 
| project name, resourceGroup, location, subscriptionId, privateEndpointConnections['properties']['privateEndpoint']['id']

Pour déterminer le type de schéma d’entrée pour tous les domaines Event Grid disponibles, utilisez le schéma suivant :

Resources 
| where type == 'microsoft.eventgrid/domains'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']

Pour identifier l’état de l’accès réseau public pour toutes les rubriques Event Grid disponibles, utilisez la requête suivante :

Resources 
| where type == 'microsoft.eventgrid/topics' 
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']

Étape suivante