Partager via


Gérer des rubriques et publier des événements à l’aide de domaines de l’événement

Cet article montre comment :

  • Créer un domaine Event Grid
  • S’abonner à des rubriques Event Grid
  • List keys (Afficher la liste des clés)
  • Publier des événements sur un domaine

Pour en savoir plus sur les domaines d’événements, consultez Comprendre les domaines d’événements pour gérer les rubriques Event Grid.

Créer un domaine d’événement

Pour gérer de grands ensembles de rubriques, créez un domaine d’événements.

az eventgrid domain create \
  -g <my-resource-group> \
  --name <my-domain-name> \
  -l <location>

Une création réussie retourne les valeurs suivantes :

{
  "endpoint": "https://<my-domain-name>.westus2-1.eventgrid.azure.net/api/events",
  "id": "/subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>",
  "inputSchema": "EventGridSchema",
  "inputSchemaMapping": null,
  "location": "westus2",
  "name": "<my-domain-name>",
  "provisioningState": "Succeeded",
  "resourceGroup": "<my-resource-group>",
  "tags": null,
  "type": "Microsoft.EventGrid/domains"
}

Notez les paramètres endpoint et id, dont vous avez besoin pour gérer le domaine et publier des événements.

Gérer l’accès aux rubriques

La gestion de l’accès aux rubriques est effectuée par le biais d’une attribution de rôle. L’attribution de rôle utilise le contrôle d’accès en fonction du rôle Azure pour limiter les opérations sur les ressources Azure aux utilisateurs autorisés dans une étendue donnée.

Event Grid a deux rôles intégrés que vous pouvez utiliser pour attribuer à des utilisateurs spécifiques l’accès à différentes rubriques au sein d’un domaine. Ces rôles sont EventGrid EventSubscription Contributor (Preview), qui permet de créer et de supprimer des abonnements, et EventGrid EventSubscription Reader (Preview), qui permet uniquement de répertorier les abonnements aux événements.

La commande Azure CLI suivante limite alice@contoso.com à la création et à la suppression d’abonnements aux événements uniquement sur la rubrique demotopic1 :

az role assignment create \
  --assignee alice@contoso.com \
  --role "EventGrid EventSubscription Contributor (Preview)" \
  --scope /subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>/topics/demotopic1

Pour plus d’informations sur la gestion des accès pour les opérations Event Grid, consultez la page Sécurité et authentification Azure Event Grid.

Créer des rubriques et des abonnements

Le service Event Grid crée et gère automatiquement la rubrique correspondante dans un domaine en fonction de l’appel destiné à créer un abonnement aux événements pour une rubrique de domaine. Il n’existe pas d’autre étape pour créer une rubrique dans un domaine. De même, quand le dernier abonnement aux événements pour une rubrique est supprimé, celle-ci est également supprimée.

L’abonnement à une rubrique dans un domaine est identique à l’abonnement à toute autre ressource Azure. Pour un ID de ressource source, spécifiez l’ID de domaine d’événements retourné au moment de la création du domaine. Pour spécifier la rubrique à laquelle vous voulez vous abonner, ajoutez /topics/<my-topic> à la fin de l’ID de ressource de la source. Pour créer un abonnement d’événement de portée de domaine qui reçoit tous les événements dans le domaine, indiquez l’ID de domaine d’événements sans spécifier de rubriques.

Généralement, l’utilisateur auquel vous avez accordé l’accès dans la section précédente créera l’abonnement. Pour plus de simplicité dans cet article, c’est vous qui créez l’abonnement.

az eventgrid event-subscription create \
  --name <event-subscription> \
  --source-resource-id "/subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/Microsoft.EventGrid/domains/<my-domain-name>/topics/demotopic1" \
  --endpoint https://contoso.azurewebsites.net/api/updates

Si vous avez besoin d’un point de terminaison de test auquel abonner vos événements, vous pouvez toujours déployer une application web prédéfinie qui affiche les événements entrants. Vous pouvez envoyer vos événements à votre site web de test à l’adresse https://<your-site-name>.azurewebsites.net/api/updates.

Bouton pour déployer le modèle Resource Manager sur Azure.

Les autorisations définies pour une rubrique sont stockées dans Microsoft Entra ID et doivent être supprimées de manière explicite. La suppression d’un abonnement à des événements ne révoque pas l’accès des utilisateurs à la création d’abonnements aux événements s’ils ont un accès en écriture à une rubrique.

Publier des événements dans un domaine Event Grid

La publication d’événements sur un domaine est similaire à la publication sur une rubrique personnalisée. Toutefois, au lieu de publier dans la rubrique personnalisée, vous publiez tous les événements sur le point de terminaison de domaine. Dans les données d’événement JSON, vous spécifiez la rubrique dans laquelle placer les événements. Dans le tableau d’événements suivant, l’événement avec "id": "1111" est destiné à la rubrique demotopic1, alors que l’événement avec "id": "2222" est destiné à la rubrique demotopic2 :

[{
  "topic": "demotopic1",
  "id": "1111",
  "eventType": "maintenanceRequested",
  "subject": "myapp/vehicles/diggers",
  "eventTime": "2018-10-30T21:03:07+00:00",
  "data": {
    "make": "Contoso",
    "model": "Small Digger"
  },
  "dataVersion": "1.0"
},
{
  "topic": "demotopic2",
  "id": "2222",
  "eventType": "maintenanceCompleted",
  "subject": "myapp/vehicles/tractors",
  "eventTime": "2018-10-30T21:04:12+00:00",
  "data": {
    "make": "Contoso",
    "model": "Big Tractor"
  },
  "dataVersion": "1.0"
}]

Pour obtenir le point de terminaison de domaine avec Azure CLI, utilisez

az eventgrid domain show \
  -g <my-resource-group> \
  -n <my-domain>

Pour obtenir les clés d’un domaine, utilisez :

az eventgrid domain key list \
  -g <my-resource-group> \
  -n <my-domain>

Ensuite, publiez vos événements sur votre domaine Event Grid en effectuant une requête HTTP POST selon la méthode de votre choix.

Remarque

Si vous souhaitez obtenir des exemples qui utilisent des Kits de développement logiciel (SDK) en langage de programmation pour publier des événements dans un domaine Event Grid, utilisez les liens suivants :

Listes de recherche de rubriques ou abonnements

Pour rechercher et gérer un grand nombre de rubriques et d’abonnements, les API Event Grid prennent en charge le référencement et la pagination.

Utiliser l'interface CLI

Par exemple, la commande suivante répertorie toutes les rubriques dont le nom contient mytopic.

az eventgrid topic list --odata-query "contains(name, 'mytopic')"

Pour plus d'informations sur cette commande, voir az eventgrid topic list.

Étapes suivantes