Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure Event Grid prend en charge les architectures pilotées par événements en acheminant les événements des sources vers les gestionnaires. Cet article explique comment configurer les files d’attente et les rubriques Azure Service Bus comme gestionnaires pour les événements Event Grid. Vous configurez la file d’attente ou la rubrique pour traiter les événements dans des applications d’entreprise en utilisant le portail Azure, Azure CLI, Azure PowerShell ou l’API REST.
Prerequisites
- Un compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Un sujet Event Grid, un sujet système, un sujet personnalisé ou un sujet partenaire auquel s’abonner. Pour plus d’informations, voir Créer une grille d’événements ou un domaine.
- Un espace de noms Service Bus avec une file d’attente ou un sujet pour recevoir les événements. Pour plus d’informations, voir Créer un espace de noms Service Bus et une file d’attente en utilisant le portail Azure.
- Permission de créer un abonnement à un événement sur le sujet source et d’envoyer des messages à la file ou au sujet cible du Service Bus.
Files d’attente Service Bus
Acheminer directement les événements dans Event Grid vers les files d’attente Service Bus pour la mise en mémoire tampon ou les scénarios de commande et de contrôle dans les applications d’entreprise.
Configurez une file d’attente Service Bus en utilisant le portail Azure
Dans le portail Azure, lors de la création d’un abonnement à un événement, sélectionnez Service Bus Queue comme type de terminaison, puis sélectionnez Sélectionner un point de terminaison pour choisir une file Service Bus.
Remarque
Si vous utilisez comme destination une file d’attente ou un abonnement à une rubrique avec prise en charge des sessions, définissez la propriété de session sur l’événement à l’aide d’une propriété de distribution dont le nom d’en-tête est SessionId.
Configurez une file d’attente Service Bus en utilisant la ligne de commande Azure CLI
Utilisez la commande az eventgrid event-subscription create avec --endpoint-type défini sur servicebusqueue et --endpoint défini sur /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. Voici un exemple :
az eventgrid event-subscription create \
--name <my-event-subscription> \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
--endpoint-type servicebusqueue \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1
Vous pouvez également utiliser la commande az eventgrid topic event-subscription pour les rubriques personnalisées, la commande az eventgrid system-topic event-subscription pour les rubriques système et la commande az eventgrid partner topic event-subscription create pour les rubriques partenaires.
Configurez une file d’attente Service Bus en utilisant Azure PowerShell
Utilisez la commande New-AzEventGridSubscription avec -EndpointType défini sur servicebusqueue et -Endpoint défini sur /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. Voici un exemple :
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebusqueue `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
-EventSubscriptionName EventSubscription1
Vous pouvez également utiliser la commande New-AzEventGridSystemTopicEventSubscription pour les rubriques système et la commande New-AzEventGridPartnerTopicEventSubscription pour les rubriques partenaires.
Rubriques de Service Bus
Acheminez les événements dans Event Grid directement vers les sujets du Service Bus pour les scénarios de messagerie de commande et de contrôle.
Configurez un sujet Service Bus en utilisant le portail Azure
Dans le portail Azure, lors de la création d’un abonnement à des événements, sélectionnez Service Bus Topic comme type de point de terminaison, puis sélectionnez Sélectionner un point de terminaison pour choisir une rubrique Service Bus.
Configurez un sujet Service Bus en utilisant l’interface Azure CLI
Utilisez la commande az eventgrid event-subscription create avec --endpoint-type défini sur servicebustopic et --endpoint défini sur /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. Voici un exemple :
az eventgrid event-subscription create \
--name <my-event-subscription> \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
--endpoint-type servicebustopic \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1
Vous pouvez également utiliser la commande az eventgrid topic event-subscription pour les rubriques personnalisées, la commande az eventgrid system-topic event-subscription pour les rubriques système et la commande az eventgrid partner topic event-subscription create pour les rubriques partenaires.
Configurez un sujet Service Bus en utilisant Azure PowerShell
Utilisez la commande New-AzEventGridSubscription avec -EndpointType défini sur servicebustopic et -Endpoint défini sur /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. Voici un exemple :
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebustopic `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
-EventSubscriptionName EventSubscription1
Vous pouvez également utiliser la commande New-AzEventGridSystemTopicEventSubscription pour les rubriques système et la commande New-AzEventGridPartnerTopicEventSubscription pour les rubriques partenaires.
En-têtes de message
Les propriétés que vous recevez dans les en-têtes de message sont les suivantes :
| Nom de la propriété | Description |
|---|---|
| aeg-subscription-name | Nom de l’abonnement aux événements. |
| aeg-delivery-count | Nombre de tentatives effectuées pour l’événement. |
| aeg-event-type | Type de l’événement. Ce peut être l’une des valeurs suivantes :
|
| aeg-metadata-version | Version de métadonnées de l’événement. Pour un schéma d’événement Event Grid, cette propriété représente la version des métadonnées et, pour un schéma d’événements cloud, elle représente la version des spécifications. |
| aeg-data-version | Version de données de l’événement. Pour un schéma d’événement Event Grid, cette propriété représente la version des données et, pour un schéma d’événements cloud, elle ne s’applique pas. |
| aeg-output-event-id | ID de l’événement Event Grid. |
Lorsque vous envoyez un événement à une file d’attente ou une rubrique Service Bus en tant que message réparti, le messageid du message réparti est un ID système interne.
L’identifiant système interne du message persiste lors de la relivraison de l’événement afin que vous puissiez éviter les livraisons dupliquées en activant la détection de doublons sur l’entité Service Bus. Définissez la durée de détection des doublons pour l’entité Service Bus sur la durée de vie (TTL) de l’événement ou sur la durée maximale de nouvelle tentative, selon la plus longue des deux.
Propriétés de livraison
Lorsque vous utilisez des abonnements à des événements, vous pouvez configurer des en-têtes HTTP à inclure dans les événements livrés. Cette fonctionnalité permet de définir des en-têtes personnalisés selon les besoins de la destination. Vous pouvez définir des en-têtes personnalisés pour les événements distribués aux files d’attente et aux rubriques Azure Service Bus.
Azure Service Bus prend en charge les propriétés de message suivantes lorsque vous envoyez des messages uniques.
| Nom de l’en-tête | Type d’en-tête |
|---|---|
MessageId |
dynamique |
PartitionKey |
Statique ou dynamique |
SessionId |
Statique ou dynamique |
CorrelationId |
Statique ou dynamique |
Label |
Statique ou dynamique |
ReplyTo |
Statique ou dynamique |
ReplyToSessionId |
Statique ou dynamique |
To |
Statique ou dynamique |
ViaPartitionKey |
Statique ou dynamique |
Remarque
- La valeur par défaut de
MessageIdest l’ID interne de l’événement Event Grid. Vous pouvez la remplacer. Par exemple, utilisezdata.field. - Vous pouvez définir uniquement
SessionIdouMessageId.
Pour plus d'informations, consultez Propriétés de remise personnalisées.
Exemples REST (pour PUT)
File d’attente Service Bus
{
"properties":
{
"destination":
{
"endpointType": "ServiceBusQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
File d’attente Service Bus - distribution avec une identité managée
{
"properties": {
"deliveryWithResourceIdentity":
{
"identity":
{
"type": "SystemAssigned"
},
"destination":
{
"endpointType": "ServiceBusQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
}
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Rubrique Service Bus
{
"properties":
{
"destination":
{
"endpointType": "ServiceBusTopic",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Rubrique Service Bus : distribution avec l’identité managée
{
"properties":
{
"deliveryWithResourceIdentity":
{
"identity":
{
"type": "SystemAssigned"
},
"destination":
{
"endpointType": "ServiceBusTopic",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
}
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Remarque
Lorsqu’un basculement se produit pour un espace de noms Service Bus avec la géo-reprise d’activité après sinistre activée, l’espace de noms secondaire n’émet pas d’événements vers Event Grid. Vous devez ajouter manuellement l’abonnement Event Grid pour l’espace de noms secondaire.
Contenu connexe
Pour une liste des gestionnaires d’événements pris en charge, voir l’article Gestionnaires d’événements .