Démarrage rapide : Router des événements personnalisés vers un point de terminaison web avec le portail Azure et Event GridQuickstart: Route custom events to web endpoint with the Azure portal and Event Grid

Azure Event Grid est un service de gestion d’événements pour le cloud.Azure Event Grid is an eventing service for the cloud. Dans cet article, vous utilisez le Portail Azure pour créer une rubrique personnalisée, vous abonner à cette rubrique et déclencher l’événement pour afficher le résultat.In this article, you use the Azure portal to create a custom topic, subscribe to the custom topic, and trigger the event to view the result. En règle générale, vous envoyez des événements à un point de terminaison qui traite les données d’événement et entreprend des actions.Typically, you send events to an endpoint that processes the event data and takes actions. Toutefois, pour simplifier cet article, vous envoyez les événements à une application web qui collecte et affiche les messages.However, to simplify this article, you send the events to a web app that collects and displays the messages.

PrérequisPrerequisites

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

Activer le fournisseur de ressources Event GridEnable Event Grid resource provider

Si vous n’avez jamais utilisé Event Grid dans votre abonnement Azure, vous devrez peut-être inscrire le fournisseur de ressources Event Grid.If you haven't previously used Event Grid in your Azure subscription, you may need to register the Event Grid resource provider.

Dans le portail Azure :In the Azure portal:

  1. Sélectionnez Abonnements dans le menu de gauche.Select Subscriptions on the left menu.
  2. Sélectionnez l’abonnement que vous utilisez pour Event Grid.Select the subscription you're using for Event Grid.
  3. Dans le menu de gauche, sous Paramètres, sélectionnez Fournisseurs de ressources.On the left menu, under Settings, select Resource providers.
  4. Recherchez Microsoft.EventGrid.Find Microsoft.EventGrid.
  5. Si l’inscription n’est pas encore faite, sélectionnez S’inscrire.If not registered, select Register.

L’inscription peut prendre un certain temps.It may take a moment for the registration to finish. Sélectionnez Actualiser pour mettre à jour l’état.Select Refresh to update the status. Lorsque l’état est Inscrit, vous êtes prêt à continuer.When Status is Registered, you're ready to continue.

Créer une rubrique personnaliséeCreate a custom topic

Une rubrique de grille d’événement fournit un point de terminaison défini par l’utilisateur vers lequel vous envoyez vos événements.An event grid topic provides a user-defined endpoint that you post your events to.

  1. Connectez-vous au portail Azure.Sign in to Azure portal.

  2. Dans la barre de recherche de la rubrique, tapez Rubriques Event Grid, puis sélectionnez Rubriques Event Grid dans la liste déroulante.In the search bar at the topic, type Event Grid Topics, and then select Event Grid Topics from the drop down list.

    Rechercher et sélectionner Rubriques Event Grid

  3. Dans la page Rubriques Event Grid, sélectionnez + Ajouter dans la barre d’outils.On the Event Grid Topics page, select + Add on the toolbar.

    Bouton d’ajout de rubrique Event Grid

  4. Dans la page Créer une rubrique, procédez comme suit :On the Create Topic page, follow these steps:

    1. Sélectionnez votre abonnement Azure.Select your Azure subscription.

    2. Sélectionnez un groupe de ressources existant ou sélectionnez Créer, puis entrez un nom pour le groupe de ressources.Select an existing resource group or select Create new, and enter a name for the resource group.

    3. Donnez un nom unique à la rubrique personnalisée.Provide a unique name for the custom topic. Le nom de la rubrique doit être unique, car elle est représentée par une entrée DNS.The topic name must be unique because it's represented by a DNS entry. N’utilisez pas le nom indiqué dans l’image.Don't use the name shown in the image. Au lieu de cela, créez votre propre nom : il doit comprendre entre 3 et 50 caractères, et contenir uniquement des valeurs a-z, A-Z, 0-9 et « - ».Instead, create your own name - it must be between 3-50 characters and contain only values a-z, A-Z, 0-9, and "-".

    4. Sélectionnez un emplacement pour la rubrique Event Grid.Select a location for the event grid topic.

    5. Au bas de la page, sélectionnez Examiner et créer.Select Review + create at the bottom of the page.

      Page Créer une rubrique

    6. Sous l’onglet Vérifier + créer de la page Créer une rubrique, sélectionnez Créer.On the Review + create tab of the Create topic page, select Create.

      Vérifier les paramètres et créer

  5. Une fois le déploiement correctement effectué, retapez Rubriques Event Grid dans la barre de recherche, puis sélectionnez Rubriques Event Grid dans la liste déroulante comme vous l’avez fait précédemment.After the deployment succeeds, type Event Grid Topics in the search bar again, and select Event Grid Topics from the drop-down list as you did before.

  6. Sélectionnez la rubrique que vous avez créée dans la liste.Select the topic you created from the list.

    Sélectionner votre rubrique dans la liste

  7. La page Rubrique Event Grid associée à votre rubrique apparaît.You see the Event Grid Topic page for your topic. Ne fermez pas cette page.Keep this page open. Vous l’utiliserez plus loin dans le guide de démarrage rapide.You use it later in the quickstart.

    Page d’accueil de la rubrique Event Grid

Créer un point de terminaison de messageCreate a message endpoint

Avant de créer un abonnement pour la rubrique personnalisée, créez un point de terminaison pour le message d’événement.Before you create a subscription for the custom topic, create an endpoint for the event message. En règle générale, le point de terminaison entreprend des actions en fonction des données d’événement.Typically, the endpoint takes actions based on the event data. Pour simplifier ce guide de démarrage rapide, déployez une application web prédéfinie qui affiche les messages d’événement.To simplify this quickstart, you deploy a pre-built web app that displays the event messages. La solution déployée comprend un plan App Service, une offre App Service Web Apps et du code source en provenance de GitHub.The deployed solution includes an App Service plan, an App Service web app, and source code from GitHub.

  1. Dans la page de l’article, sélectionnez Déployer sur Azure pour déployer la solution sur votre abonnement.In the article page, select Deploy to Azure to deploy the solution to your subscription. Dans le portail Azure, indiquez des valeurs pour les paramètres.In the Azure portal, provide values for the parameters.

    Button to Deploy to Aquent.

  2. Le déploiement peut prendre quelques minutes.The deployment may take a few minutes to complete. Une fois le déploiement réussi, affichez votre application web pour vérifier qu’elle s’exécute.After the deployment has succeeded, view your web app to make sure it's running. Dans un navigateur web, accédez à : https://<your-site-name>.azurewebsites.netIn a web browser, navigate to: https://<your-site-name>.azurewebsites.net

    Si le déploiement échoue, consultez le message d’erreur.If the deployment fails, check the error message. L’échec peut être dû au fait que le nom du site web est déjà pris.It may be because the web site name is already taken. Redéployez le modèle et choisissez un autre nom pour le site.Deploy the template again and choose a different name for the site.

  3. Vous voyez le site, mais aucun événement n’est encore posté sur celui-ci.You see the site but no events have been posted to it yet.

    Afficher le nouveau site

S’abonner à une rubrique personnaliséeSubscribe to custom topic

Vous vous abonnez à une rubrique Event Grid pour indiquer à Event Grid les événements qui vous intéressent, et où les envoyer.You subscribe to an event grid topic to tell Event Grid which events you want to track, and where to send the events.

  1. Maintenant, dans la page Rubrique Event Grid de votre rubrique personnalisée, sélectionnez + Abonnement aux événements sur la barre d’outils.Now, on the Event Grid Topic page for your custom topic, select + Event Subscription on the toolbar.

    Bouton d’ajout d’abonnement aux événements

  2. Dans la page Créer un abonnement aux événements, effectuez les étapes suivantes :On the Create Event Subscription page, follow these steps:

    1. Entrez un nom pour l’abonnement aux événements.Enter a name for the event subscription.

    2. Sélectionnez Webhook pour Type de point de terminaison.Select Web Hook for the Endpoint type.

    3. Choisissez Sélectionner un point de terminaison.Choose Select an endpoint.

      Fournir des valeurs d’abonnement à un événement

    4. Pour le point de terminaison du webhook, indiquez l’URL de votre application web et ajoutez api/updates à l’URL de la page d’accueil.For the web hook endpoint, provide the URL of your web app and add api/updates to the home page URL. Sélectionnez Confirmer la sélection.Select Confirm Selection.

      Fournir une URL du point de terminaison

    5. Dans la page Créer un abonnement aux événements, sélectionnez Créer.Back on the Create Event Subscription page, select Create.

  3. Affichez à nouveau votre application web, et notez qu’un événement de validation d’abonnement lui a été envoyé.View your web app again, and notice that a subscription validation event has been sent to it. Sélectionnez l’icône en forme d’œil pour développer les données d’événements.Select the eye icon to expand the event data. Event Grid envoie l’événement de validation pour que le point de terminaison puisse vérifier qu’il souhaite recevoir des données d’événement.Event Grid sends the validation event so the endpoint can verify that it wants to receive event data. L’application web inclut du code pour valider l’abonnement.The web app includes code to validate the subscription.

    Afficher l’événement d’abonnement

Envoyer un événement à votre rubriqueSend an event to your topic

Nous allons maintenant déclencher un événement pour voir comment Event Grid distribue le message à votre point de terminaison.Now, let's trigger an event to see how Event Grid distributes the message to your endpoint. Utilisez Azure CLI ou PowerShell pour envoyer un événement de test à votre rubrique personnalisée.Use either Azure CLI or PowerShell to send a test event to your custom topic. En règle générale, une application ou un service Azure envoie les données d’événements.Typically, an application or Azure service would send the event data.

Le premier exemple utilise Azure CLI.The first example uses Azure CLI. Il obtient l’URL et la clé de la rubrique personnalisée, ainsi que les exemples de données d’événements.It gets the URL and key for the custom topic, and sample event data. Utilisez le nom de votre rubrique personnalisée pour <topic name>.Use your custom topic name for <topic name>. Des exemples de données d’événement sont créés.It creates sample event data. L’élément data du fichier JSON est la charge utile de l’événement.The data element of the JSON is the payload of your event. N’importe quel fichier JSON bien construit peut être placé dans ce champ.Any well-formed JSON can go in this field. Vous pouvez aussi utiliser le champ objet pour un routage et un filtrage avancés.You can also use the subject field for advanced routing and filtering. CURL est un utilitaire qui envoie des requêtes HTTP.CURL is a utility that sends HTTP requests.

Azure CLIAzure CLI

  1. Dans le portail Azure, sélectionnez Cloud Shell.In the Azure portal, select Cloud Shell. Cloud Shell s’ouvre dans le volet inférieur du navigateur web.The Cloud Shell opens in the bottom pane of the web browser.

    Icône Sélectionner Cloud Shell

  2. Sélectionnez Bash dans l’angle supérieur gauche de la fenêtre Cloud Shell.Select Bash in the top-left corner of the Cloud Shell window.

    Cloud Shell - Bash

  3. Exécutez la commande suivante afin d’obtenir le point de terminaison pour la rubrique : Après avoir copié et collé la commande, et avant de l’exécuter, mettez à jour le nom de la rubrique et le nom du groupe de ressources.Run the following command to get the endpoint for the topic: After you copy and paste the command, update the topic name and resource group name before you run the command. Vous allez publier des exemples d’événements sur ce point de terminaison de rubrique.You will publish sample events to this topic endpoint.

    endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)
    
  4. Exécutez la commande suivante afin d’obtenir la clé pour la rubrique personnalisée  : Après avoir copié et collé la commande, et avant de l’exécuter, mettez à jour le nom de la rubrique et le nom du groupe de ressources.Run the following command to get the key for the custom topic: After you copy and paste the command, update the topic name and resource group name before you run the command. Il s’agit de la clé primaire de la rubrique Event Grid.This is the primary key of the Event Grid topic. Pour récupérer cette clé à partir du portail Azure, basculez vers l’onglet Clés d’accès de la page Rubrique Event Grid.To get this key from the Azure portal, switch to the Access keys tab of the Event Grid Topic page. Pour être en mesure de poster un événement dans une rubrique personnalisée, vous avez besoin de la clé d’accès.To be able post an event to a custom topic, you need the access key.

    key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)
    
  5. Copiez l’instruction suivante avec la définition de l’événement, puis appuyez sur Entrée.Copy the following statement with the event definition, and press ENTER.

    event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
    
  6. Exécutez la commande Curl suivante pour publier l’événement : Dans la commande, l’en-tête aeg-sas-key est défini sur la clé d’accès que vous avez obtenue précédemment.Run the following Curl command to post the event: In the command, aeg-sas-key header is set to the access key you got earlier.

    curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
    

Azure PowerShellAzure PowerShell

Le deuxième exemple utilise PowerShell pour effectuer des étapes similaires.The second example uses PowerShell to perform similar steps.

  1. Dans le portail Azure, sélectionnez Cloud Shell (ou accédez à https://shell.azure.com/).In the Azure portal, select Cloud Shell (alternatively go to https://shell.azure.com/). Cloud Shell s’ouvre dans le volet inférieur du navigateur web.The Cloud Shell opens in the bottom pane of the web browser.

    Icône Sélectionner Cloud Shell

  2. Dans Cloud Shell, sélectionnez PowerShell en haut à gauche de la fenêtre Cloud Shell.In the Cloud Shell, select PowerShell in the top-left corner of the Cloud Shell window. Consultez l’exemple d’image de fenêtre Cloud Shell dans la section Azure CLI.See the sample Cloud Shell window image in the Azure CLI section.

  3. Définissez les variables suivantes.Set the following variables. Après avoir copié et collé la commande, et avant de l’exécuter, mettez à jour le nom de la rubrique et le nom du groupe de ressources :After you copy and paste each command, update the topic name and resource group name before you run the command:

    Groupe de ressources :Resource group:

    $resourceGroupName = "<resource group name>"
    

    Nom de la rubrique Event Grid :Event Grid topic name:

    $topicName = "<topic name>"
    
  4. Exécutez les commandes suivantes afin d’obtenir le point de terminaison et les clés pour la rubrique :Run the following commands to get the endpoint and the keys for the topic:

    $endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint
    $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
    
  5. Préparez l’événement.Prepare the event. Copiez et exécutez les instructions dans la fenêtre Cloud Shell.Copy and run the statements in the Cloud Shell window.

    $eventID = Get-Random 99999
    
    #Date format should be SortableDateTimePattern (ISO 8601)
    $eventDate = Get-Date -Format s
    
    #Construct body using Hashtable
    $htbody = @{
        id= $eventID
        eventType="recordInserted"
        subject="myapp/vehicles/motorcycles"
        eventTime= $eventDate   
        data= @{
            make="Ducati"
            model="Monster"
        }
        dataVersion="1.0"
    }
    
    #Use ConvertTo-Json to convert event body from Hashtable to JSON Object
    #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax
    $body = "["+(ConvertTo-Json $htbody)+"]"
    
  6. Utilisez l’applet de commande Invoke-WebRequest pour envoyer l’événement.Use the Invoke-WebRequest cmdlet to send the event.

    Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
    

Vérifier dans la visionneuse Event GridVerify in the Event Grid Viewer

Vous avez déclenché l’événement, et Event Grid a envoyé le message au point de terminaison configuré lors de l’abonnement.You've triggered the event, and Event Grid sent the message to the endpoint you configured when subscribing. Affichez votre application web pour voir l’événement que vous venez d’envoyer.View your web app to see the event you just sent.

Visionneuse Event Grid

Nettoyer les ressourcesClean up resources

Si vous envisagez de continuer à utiliser cet événement, ne supprimez pas les ressources créées dans cet article.If you plan to continue working with this event, don't clean up the resources created in this article. Dans le cas contraire, supprimez les ressources créées avec cet article.Otherwise, delete the resources you created in this article.

  1. Sélectionnez Groupes de ressources dans le menu de gauche.Select Resource Groups on the left menu. Si vous ne voyez pas cette option dans le menu de gauche, sélectionnez Tous les services dans ce menu, puis sélectionnez Groupes de ressources.If you don't see it on the left menu, select All Services on the left menu, and select Resource Groups.

    Groupes de ressources

  2. Sélectionnez le groupe de ressources pour lancer la page Groupe de ressources.Select the resource group to launch the Resource Group page.

  3. Sélectionnez Supprimer le groupe de ressources sur la barre d’outils.Select Delete resource group on the toolbar.

  4. Confirmez la suppression en entrant le nom du groupe de ressources, puis sélectionnez Supprimer.Confirm deletion by entering the name of the resource group, and select Delete.

    L’autre groupe de ressources que vous voyez dans l’image a été créé et utilisé par la fenêtre Cloud Shell.The other resource group you see in the image was created and used by the Cloud Shell window. Supprimez-le si vous n’envisagez pas d’utiliser la fenêtre Cloud Shell.Delete it if you don't plan to use the Cloud Shell window later.

Étapes suivantesNext steps

Maintenant que vous savez créer des rubriques et des abonnements d’événements personnalisés, vous pouvez en apprendre davantage sur Event Grid et ce qu’il peut vous offrir :Now that you know how to create custom topics and event subscriptions, learn more about what Event Grid can help you do: