Quickstart: Gebeurtenissen Azure Cache voor Redis routeren naar een webeindpunt met Azure CLI

Azure Event Grid is een gebeurtenisservice voor de cloud. In deze quickstart gebruikt u de Azure CLI om u te abonneren op Azure Cache voor Redis gebeurtenissen, een gebeurtenis te activeren en de resultaten weer te geven.

Normaal gesproken verzendt u gebeurtenissen naar een eindpunt dat de gebeurtenisgegevens verwerkt en vervolgens in actie komt. Om deze quickstart te vereenvoudigen, verzendt u echter gebeurtenissen naar een web-app waarmee de berichten worden verzameld en weergegeven. Wanneer u de stappen in deze quickstart hebt voltooid, ziet u dat de gebeurtenisgegevens naar de web-app zijn verzonden.

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

Azure Cloud Shell

Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde Cloud Shell-opdrachten gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.

Om Azure Cloud Shell op te starten:

Optie Voorbeeld/koppeling
Selecteer Uitproberen in de rechterbovenhoek van een code- of opdrachtblok. Als u Try It selecteert, wordt de code of opdracht niet automatisch gekopieerd naar Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. Button to launch Azure Cloud Shell.
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. Screenshot that shows the Cloud Shell button in the Azure portal

Azure Cloud Shell gebruiken:

  1. Start Cloud Shell.

  2. Selecteer de knop Kopiëren op een codeblok (of opdrachtblok) om de code of opdracht te kopiëren.

  3. Plak de code of opdracht in de Cloud Shell-sessie door Ctrl+Shift+V in Windows en Linux te selecteren of door Cmd+Shift+V te selecteren in macOS.

  4. Selecteer Enter om de code of opdracht uit te voeren.

Als u ervoor kiest om de CLI lokaal te installeren en te gebruiken, moet u voor deze quickstart de nieuwste versie van Azure CLI (2.0.70 of hoger) uitvoeren. Voer az --version uit om de versie te zoeken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.

Als u Cloud Shell niet gebruikt, moet u zich eerst aanmelden met az login.

Een brongroep maken

Event Grid-onderwerpen worden geïmplementeerd als afzonderlijke Azure-resources en moeten worden ingericht in een Azure-resourcegroep. Een resourcegroep is een logische verzameling waarin Azure-resources worden geïmplementeerd en beheerd.

Een resourcegroep maken met de opdracht az group create.

In het volgende voorbeeld wordt een resourcegroep met de naam <resource_group_name> gemaakt op de locatie westcentralus. Vervang <resource_group_name> door een unieke naam voor uw resourcegroep.

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

Een cache-exemplaar maken

#/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

Het eindpunt van een bericht maken

Voordat u zich abonneert op het onderwerp, gaan we het eindpunt voor het gebeurtenisbericht maken. Het eindpunt onderneemt normaal gesproken actie op basis van de gebeurtenisgegevens. Ter vereenvoudiging van deze snelstart gaat u een vooraf gebouwde web-app implementeren waarmee de gebeurtenisberichten worden weergegeven. De geïmplementeerde oplossing omvat een App Service-plan, een App Service-web-app en broncode van GitHub.

Vervang <your-site-name> door een unieke naam voor de web-app. De naam van de web-app moet uniek zijn omdat deze deel uitmaakt van de DNS-vermelding.

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

De implementatie kan enkele minuten duren. Controleer of uw web-app wordt uitgevoerd nadat de implementatie is voltooid. Navigeer in een webbrowser naar: https://<your-site-name>.azurewebsites.net

Op de site zouden momenteel geen berichten moeten wijn weergeven.

De Event Grid-resourceprovider inschakelen

  1. Als u Event Grid in uw Azure-abonnement nog niet eerder hebt gebruikt, moet u mogelijk de Event Grid-resourceprovider registreren. Voer de volgende opdracht uit om de provider te registreren:

    az provider register --namespace Microsoft.EventGrid
    
  2. Het kan even duren voordat de registratie is voltooid. Voer de volgende opdracht uit om de status te controleren:

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

    Wanneer registrationStateRegistered is, bent u klaar om door te gaan.

Abonneren op uw Azure Cache voor Redis-exemplaar

In deze stap abonneert u zich op een onderwerp om Event Grid te vertellen welke gebeurtenissen u wilt bijhouden en waar deze gebeurtenissen moeten worden verzonden. In het volgende voorbeeld wordt u geabonneerd op het Azure Cache voor Redis exemplaar dat u hebt gemaakt en wordt de URL van uw web-app doorgegeven als eindpunt voor gebeurtenismelding. Vervang <event_subscription_name> door een naam voor het gebeurtenisabonnement. Gebruik voor <resource_group_name> en <cache_name> de waarden die u eerder hebt gemaakt.

Het eindpunt voor uw web-app moet het achtervoegsel /api/updates/ bevatten.

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

Bekijk opnieuw uw web-app en u zult zien dat er een validatiegebeurtenis voor een abonnement naartoe is verzonden. Selecteer het oogpictogram om de gebeurtenisgegevens uit te breiden. Via Event Grid wordt de validatiegebeurtenis verzonden zodat het eindpunt kan controleren of de gebeurtenisgegevens in aanmerking komen om ontvangen te worden. De web-app bevat code waarmee het abonnement kan worden gevalideerd.

Azure Event Grid Viewer.

Een gebeurtenis activeren vanuit Azure Cache voor Redis

Nu gaan we een gebeurtenis activeren om te zien hoe het bericht via Event Grid naar het eindpunt wordt gedistribueerd. Laten we de gegevens exporteren die zijn opgeslagen in uw Azure Cache voor Redis exemplaar. Gebruik opnieuw de waarden voor {cache_name} en {resource_group_name} u hebt eerder gemaakt.

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>'  

U hebt de gebeurtenis geactiveerd en Event Grid heeft het bericht verzonden naar het eindpunt dat u hebt geconfigureerd toen u zich abonneerde. Bekijk uw web-app om de gebeurtenis te zien die u zojuist hebt verzonden.

[{
"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"
}]

Resources opschonen

Als u van plan bent om door te gaan met dit Azure Cache voor Redis exemplaar en gebeurtenisabonnement, moet u de resources die in deze quickstart zijn gemaakt, niet opschonen. Als u niet van plan bent om door te gaan, gebruikt u de volgende opdracht om de resources te verwijderen die u in deze quickstart hebt gemaakt.

Vervang <resource_group_name> door de resourcegroep die u eerder hebt gemaakt.

az group delete --name <resource_group_name>

Volgende stappen

Nu u weet hoe u onderwerpen en gebeurtenisabonnementen maakt, vindt u meer informatie over Azure Cache voor Redis gebeurtenissen en wat Event Grid u kan helpen: