Quickstart: Aangepaste gebeurtenissen routeren naar een webeindpunt met Azure CLI en Event Grid

In deze quickstart gebruik je de Azure CLI om een aangepast onderwerp aan te maken in Azure Event Grid, abonneer je je op het aangepaste onderwerp en activeer je een voorbeeldevent om het resultaat te bekijken.

Normaal gesproken verzendt u gebeurtenissen naar een eindpunt dat de gebeurtenisgegevens verwerkt en vervolgens in actie komt. Om deze quickstart te vereenvoudigen, stuur je voorbeeldgebeurtenissen naar een webapp die de berichten verzamelt en weergeeft. Als je klaar bent, zie je de gebeurtenisgegevens in de webapp, zoals te zien is in de volgende afbeelding:

Schermopname van het Event Grid Viewer-voorbeeld met een voorbeeldgebeurtenis.

Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.

Vereisten

  • Deze quickstart vereist versie 2.0.70 of later van de Azure CLI. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.
  • Als je nieuw bent met Azure Event Grid, bekijk dan What's Azure Event Grid voor een overzicht van de dienst voordat je deze quickstart start.

Een brongroep maken

Event Grid-onderwerpen zijn Azure-bronnen die je in een Azure-resourcegroep moet plaatsen. De resourcegroep is een logische verzameling waarin je Azure-resources uitrolt en beheert.

Een resourcegroep maken met de opdracht az group create. In het volgende voorbeeld wordt een resourcegroep met de naam gridResourceGroup gemaakt op de locatie westus2. Verander de naam van de resourcegroep en de locatie als je wilt.

az group create --name gridResourceGroup --location westus2

De Event Grid-resourceprovider inschakelen

  1. Als dit de eerste keer is dat u Event Grid in uw Azure-abonnement 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.

Een aangepast onderwerp maken

Een Event Grid-onderwerp biedt een door de gebruiker gedefinieerd eindpunt waarnaar u uw gebeurtenissen plaatst. Het volgende voorbeeld maakt het aangepaste onderwerp aan in je resourcegroep door Bash te gebruiken in Azure Cloud Shell. Vervang <your-topic-name> door een unieke naam voor het onderwerp. De naam van het aangepaste onderwerp moet uniek zijn omdat deze deel uitmaakt van de DNS-vermelding (Domain Name System). Ook moet het tussen de 3-50 tekens zijn en alleen waarden a-z, A-Z, 0-9 en "-" bevatten.

  1. Kopieer het volgende commando, geef een naam voor het onderwerp op en selecteer Enter om het commando uit te voeren.

    topicname=<your-topic-name>
    
  2. Gebruik de az eventgrid topic create opdracht om een aangepast onderwerp te maken.

    az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
    

Een berichteindpunt maken

Voordat u zich abonneert op het aangepaste onderwerp, maakt u het eindpunt voor het gebeurtenisbericht. Het eindpunt onderneemt normaal gesproken actie op basis van de gebeurtenisgegevens. Om deze quickstart eenvoudiger te maken, implementeer je een vooraf gebouwde web-app die de gebeurtenismeldingen toont. De geïmplementeerde oplossing omvat een App Service-plan, een App Service-web-app en broncode van GitHub.

  1. Kopieer het volgende commando, geef een naam op voor de webapp (Event Grid Viewer voorbeeld) en selecteer Enter om het commando uit te voeren. 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>
    
  2. Voer de az deployment group create uit om de web-app te implementeren met behulp van een Azure Resource Manager-sjabloon.

    az deployment group create \
      --resource-group gridResourceGroup \
      --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. Nadat de implementatie is voltooid, bekijkt u uw web-app om te controleren of deze wordt uitgevoerd. Navigeer in een webbrowser naar: https://<your-site-name>.azurewebsites.net

Je zou de site moeten zien zonder dat er berichten worden weergegeven.

Abonneren op een aangepast onderwerp

U abonneert u op een Event Grid-onderwerp om Event Grid te vertellen welke gebeurtenissen u wilt bijhouden en waar deze gebeurtenissen moeten worden verzonden. In het volgende voorbeeld ziet u hoe u zich abonneert op het aangepaste onderwerp dat u hebt gemaakt, en hoe de URL van uw web-app wordt doorgegeven als het eindpunt voor de gebeurtenismelding.

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

  1. Kopieer het volgende commando, vervang $sitename het door de naam van de webapp die je in de vorige stap hebt gemaakt, en selecteer Enter om het commando uit te voeren.

    endpoint=https://$sitename.azurewebsites.net/api/updates
    
  2. Voer de volgende opdracht uit om de resource-id op te halen van het onderwerp dat u hebt gemaakt.

    topicresourceid=$(az eventgrid topic show --resource-group gridResourceGroup --name $topicname --query "id" --output tsv)
    
  3. Voer de volgende opdracht uit om een abonnement op het aangepaste onderwerp te maken met behulp van het eindpunt.

    az eventgrid event-subscription create \
      --source-resource-id $topicresourceid \
      --name demoViewerSub \
      --endpoint $endpoint
    

    Bekijk uw web-app opnieuw en merk op dat er een abonnementsvalidatiegebeurtenis naar de app 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.

    Screenshot die het Event Grid Viewer-voorbeeld toont met een abonnementsvalidatie-event.

Een gebeurtenis verzenden naar het aangepaste onderwerp

We activeren een gebeurtenis om te zien hoe het bericht via Event Grid naar het eindpunt wordt gedistribueerd. Haal eerst de URL en sleutel voor het aangepaste onderwerp.

endpoint=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name $topicname -g gridResourceGroup --query "key1" --output tsv)

Om deze quickstart te vereenvoudigen, gebruik voorbeeldgegevens van gebeurtenissen om naar het aangepaste onderwerp te sturen. Normaal gesproken verzendt een toepassing of Azure-service de gebeurtenisgegevens. In het volgende voorbeeld worden voorbeeldgebeurtenisgegevens gemaakt:

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"} ]'

Het element data van de JSON-code is de payload van je gebeurtenis. Elke juist opgemaakte JSON kan in dit veld worden ingevoerd. U kunt het onderwerpveld ook gebruiken voor geavanceerd routeren en filteren.

cURL is een hulpprogramma dat HTTP-verzoeken verzendt. Gebruik in deze quickstart cURL om het event naar het onderwerp te sturen.

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

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

[{
  "id": "1807",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2017-08-10T21:03:07+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventGrid/topics/{topic}"
}]

Hulpbronnen opschonen

Als je van plan bent om met dit evenement of de event viewer-app te blijven werken, ruim dan de bronnen die je in deze quickstart hebt gemaakt niet op. Gebruik anders het volgende commando om de bronnen die je in deze quickstart hebt aangemaakt te verwijderen.

az group delete --name gridResourceGroup --yes --no-wait

U weet nu hoe u onderwerpen maakt en hoe u zich abonneert op een gebeurtenis. Kijk waar Event Grid u nog meer bij kan helpen:

Om te leren over het publiceren van events naar en het consumeren van events uit Event Grid in verschillende programmeertalen, zie de volgende voorbeelden: