Partager via


Démarrage rapide : Acheminer les événements Azure Cache pour Redis vers le point de terminaison web avec Azure CLI

Important

Azure Cache pour Redis a annoncé sa chronologie de mise hors service pour toutes les références SKU. Nous vous recommandons de déplacer vos instances Azure Cache pour Redis existantes vers Azure Managed Redis dès que vous le pouvez.

Pour plus d’informations sur la mise hors service :

Azure Event Grid est un service de gestion d’événements pour le cloud. Dans ce guide de démarrage rapide, vous allez utiliser Azure CLI pour vous abonner aux événements Azure Cache pour Redis, déclencher un événement et voir les résultats.

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. Toutefois, pour simplifier ce guide de démarrage rapide, vous allez envoyer des événements à une application web qui va collecter et afficher les messages. Une fois que vous aurez effectué les étapes décrites dans ce guide de démarrage rapide, vous verrez que les données d’événement ont été envoyées à l’application web.

Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.

Azure Cloud Shell

Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur. Vous pouvez utiliser Bash ou PowerShell avec Cloud Shell pour utiliser les services Azure. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.

Pour démarrer Azure Cloud Shell :

Choix Exemple/Lien
Sélectionnez Essayer en haut à droite d’un bloc de code ou de commande. Cette action n’a pas pour effet de copier automatiquement le code ni la commande dans Cloud Shell. Capture d’écran montrant un exemple d’essai pour Azure Cloud Shell.
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur. Bouton permettant de lancer Azure Cloud Shell.
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure. Capture d’écran montrant le bouton Cloud Shell dans le portail Azure

Pour utiliser Azure Cloud Shell, procédez comme suit :

  1. Démarrez Cloud Shell.

  2. Sélectionnez le bouton Copier sur un bloc de code (ou un bloc de commande) pour copier le code ou la commande.

  3. Collez le code ou la commande dans la session Cloud Shell en sélectionnant Ctrl+Maj+V (sur Windows et Linux) ou Cmd+Maj+V (sur macOS).

  4. Sélectionnez Entrée pour exécuter le code ou la commande.

Si vous choisissez d’installer et d’utiliser l’interface CLI localement, ce guide de démarrage rapide nécessite l’exécution de la dernière version d’Azure CLI (2.0.70 ou ultérieure). Pour connaître la version de l’interface, exécutez az --version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.

Si vous n’utilisez pas Cloud Shell, vous devez d’abord vous connecter à l’aide de az login.

Créer un groupe de ressources

Les rubriques Event Grid sont déployées en tant que ressources Azure individuelles et doivent être provisionnées sous un groupe de ressources Azure. Un groupe de ressources est une collection logique dans laquelle des ressources Azure sont déployées et managées.

Créez un groupe de ressources avec la commande az group create.

L’exemple suivant crée un groupe de ressources nommé <resource_group_name> à l’emplacement westcentralus. Remplacez <resource_group_name> par un nom unique pour votre groupe de ressources.

az group create --name <resource_group_name> --location westcentralus

Créer une instance de cache

#/bin/bash

# Create a Basic C0 (256 MB) Azure Cache for Redis instance
az redis create --name <cache_name> --resource-group <resource_group_name> --location westcentralus --sku Basic --vm-size C0

Créer un point de terminaison de message

Avant de nous abonner à la rubrique, nous allons créer le point de terminaison pour le message de l’événement. En règle générale, le point de terminaison entreprend des actions en fonction des données d’événement. Pour simplifier ce guide de démarrage rapide, déployez une application web prédéfinie qui affiche les messages d’événement. La solution déployée comprend un plan App Service, une offre App Service Web Apps et du code source en provenance de GitHub.

Remplacez <your-site-name> par un nom unique pour votre application web. Le nom de l’application web doit être unique, car il fait partie de l’entrée DNS.

sitename=<your-site-name>

az deployment group create \
  --resource-group <resource_group_name> \
  --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/main/azuredeploy.json" \
  --parameters siteName=$sitename hostingPlanName=viewerhost

Le déploiement peut prendre quelques minutes. Une fois le déploiement réussi, affichez votre application web pour vérifier qu’elle s’exécute. Dans un navigateur web, accédez à : https://<your-site-name>.azurewebsites.net

Vous devez voir le site sans messages affichés.

Activer le fournisseur de ressources Event Grid

  1. Si c’est la première fois que vous utilisez Event Grid dans votre abonnement Azure, vous devrez peut-être inscrire le fournisseur de ressources Event Grid. Exécutez la commande suivante pour enregistrer le fournisseur :

    az provider register --namespace Microsoft.EventGrid
    
  2. L’inscription peut prendre un certain temps. Pour vérifier l’état, exécutez la commande suivante :

    az provider show --namespace Microsoft.EventGrid --query "registrationState"
    

    Lorsque registrationState est Registered, vous êtes prêt à continuer.

S’abonner à l’instance d’Azure Cache pour Redis

Au cours de cette étape, vous vous abonnez à une rubrique pour indiquer à Event Grid les événements que vous souhaitez suivre, et où les envoyer. L’exemple suivant permet de s’abonner à l’instance d’Azure Cache pour Redis que vous avez créée, et de passer l’URL à partir de votre application web en tant que point de terminaison de la notification d’événements. Remplacez <event_subscription_name> par un nom pour votre abonnement aux événements. Pour <resource_group_name> et <cache_name>, utilisez les valeurs que vous avez créées précédemment.

Le point de terminaison de votre application web doit inclure le suffixe /api/updates/.

cacheId=$(az redis show --name <cache_name> --resource-group <resource_group_name> --query id --subscription <subscription_id> --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates

az eventgrid event-subscription create \
  --source-resource-id $cacheId \
  --name <event_subscription_name> \
  --endpoint $endpoint

Affichez à nouveau votre application web, et notez qu’un événement de validation d’abonnement lui a été envoyé. Sélectionnez l’icône en forme d’œil pour développer les données d’événements. 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. L’application web inclut du code pour valider l’abonnement.

Visionneuse Azure Event Grid.

Déclencher un événement à partir d’Azure Cache pour Redis

Nous allons maintenant déclencher un événement pour voir comment Event Grid distribue le message à votre point de terminaison. Exportons les données stockées dans votre instance d’Azure Cache pour Redis. Pour {cache_name} et {resource_group_name}, réutilisez les valeurs que vous avez créées.

az redis export  --ids '/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}' \
    --prefix '<prefix_for_exported_files>' \
    --container '<SAS_url>'  

Vous avez déclenché l’événement, et Event Grid a envoyé le message au point de terminaison configuré lors de l’abonnement. Affichez votre application web pour voir l’événement que vous venez d’envoyer.

[{
"id": "e1ceb52d-575c-4ce4-8056-115dec723cff",
  "eventType": "Microsoft.Cache.ExportRDBCompleted",
  "topic": "/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}",
  "data": {
    "name": "ExportRDBCompleted",
    "timestamp": "2020-12-10T18:07:54.4937063+00:00",
    "status": "Succeeded"
  },
  "subject": "ExportRDBCompleted",
  "dataversion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2020-12-10T18:07:54.4937063+00:00"
}]

Nettoyer les ressources

Si vous comptez continuer à utiliser cette instance d’Azure Cache pour Redis et l’abonnement aux événements, ne supprimez pas les ressources créées dans ce guide de démarrage rapide. Sinon, utilisez la commande suivante pour supprimer les ressources créées dans ce guide de démarrage rapide.

Remplacez <resource_group_name> par le nom du groupe de ressources que vous avez créé plus haut.

az group delete --name <resource_group_name>

Étapes suivantes

Une fois que vous savez créer des rubriques et des abonnements aux événements, vous pouvez en apprendre davantage sur les événements Azure Cache pour Redis et sur ce qu’Event Grid peut vous offrir :