Share via


Aangepaste gebeurtenissen routeren naar een webeindpunt met Azure Portal en Azure Event Grid

Event Grid is een volledig beheerde service waarmee u eenvoudig gebeurtenissen in veel verschillende Azure-services en -toepassingen kunt beheren. Het vereenvoudigt het bouwen van gebeurtenisgestuurde en serverloze toepassingen. Zie Event Grid-overzicht voor een overzicht van de service.

In dit artikel gebruikt u Azure Portal om de volgende taken uit te voeren:

  1. Een aangepast onderwerp maken.
  2. Abonneer u op het aangepaste onderwerp.
  3. Activeer de gebeurtenis.
  4. Bekijk het resultaat. Normaal gesproken verzendt u gebeurtenissen naar een eindpunt dat de gebeurtenisgegevens verwerkt en vervolgens in actie komt. Ter vereenvoudiging van dit artikel stuurt u hier de gebeurtenissen echter naar een web-app die de berichten verzamelt en weergeeft.

Vereisten

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

De Event Grid-resourceprovider registreren

Tenzij u Event Grid eerder hebt gebruikt, moet u de Event Grid-resourceprovider registreren. Als u Event Grid eerder hebt gebruikt, gaat u verder met de volgende sectie.

Voer in Azure Portal de volgende stappen uit:

  1. Selecteer Abonnementen in het linkermenu.

  2. Selecteer het abonnement dat u wilt gebruiken voor Event Grid in de lijst met abonnementen.

  3. Selecteer op de pagina Abonnement resourceproviders onder Instellingen in het linkermenu.

  4. Zoek naar Microsoft.EventGrid en controleer of de status niet is geregistreerd.

  5. Selecteer Microsoft.EventGrid in de lijst met providers.

  6. Selecteer Registreren op de opdrachtbalk.

    Afbeelding van de registratie van de Microsoft.EventGrid-provider met het Azure-abonnement.

  7. Vernieuwen om ervoor te zorgen dat de status van Microsoft.EventGrid wordt gewijzigd in Geregistreerd.

    Afbeelding van de geslaagde registratie van de Microsoft.EventGrid-provider met het Azure-abonnement.

Een aangepast onderwerp maken

Een Event Grid-onderwerp biedt een door de gebruiker gedefinieerd eindpunt waarnaar u uw gebeurtenissen plaatst.

  1. Meld u aan bij de Azure-portal.

  2. Typ Event Grid-onderwerpen in de zoekbalk in het onderwerp en selecteer vervolgens Event Grid-onderwerpen in de vervolgkeuzelijst.

    Schermopname van de azure-poortzoekbalk om te zoeken naar Event Grid-onderwerpen.

  3. Selecteer + Maken op de werkbalk op de pagina Event Grid-onderwerpen.

    Schermopname van de knop Onderwerp maken op de pagina Event Grid-onderwerpen.

  4. Voer de volgende stappen uit op de pagina Onderwerp maken:

    1. Selecteer uw Azure-abonnement.

    2. Selecteer een bestaande resourcegroep of selecteer Nieuwe maken en geef een naam op voor de resourcegroep.

    3. Geef een unieke naam op voor het aangepaste onderwerp. De onderwerpnaam moet uniek zijn omdat deze wordt vertegenwoordigd door een DNS-vermelding. Gebruik niet de naam die in de afbeelding wordt weergegeven. Maak in plaats daarvan uw eigen naam - deze moet tussen 3 en 50 tekens lang zijn en mag alleen de waarden a-z, A-Z, 0-9 en '-' bevatten.

    4. Selecteer een locatie voor het Event Grid-onderwerp.

    5. Selecteer Controleren en maken onderaan de pagina.

      De pagina Onderwerp maken

    6. Selecteer de optie Maken op het tabblad Beoordelen en maken van de pagina Onderwerp maken.

      Instellingen controleren en maken

  5. Nadat de implementatie is voltooid, selecteert u Ga naar de resource om naar de pagina Event Grid-onderwerp voor uw onderwerp te navigeren. Laat deze pagina geopend. U gebruikt deze later in de quickstart.

    Schermopname van de startpagina van het Event Grid-onderwerp.

    Notitie

    Als u de quickstart eenvoudig wilt houden, gebruikt u alleen de pagina Basisinformatie om een onderwerp te maken. Zie Een aangepast onderwerp maken voor gedetailleerde stappen over het configureren van instellingen voor netwerk-, beveiligings- en gegevenslocatie op andere pagina's van de wizard.

Het eindpunt van een bericht maken

Voordat u een abonnement voor het aangepaste onderwerp maakt, moet u een eindpunt voor het gebeurtenisbericht maken. Het eindpunt onderneemt normaal gesproken actie op basis van de gebeurtenisgegevens. Ter vereenvoudiging van deze quickstart implementeert u een vooraf gemaakte web-app die de gebeurtenisberichten weergeeft. De geïmplementeerde oplossing omvat een App Service-plan, een App Service-web-app en broncode van GitHub.

  1. Selecteer Implementeren in Azure op de artikelpagina om de oplossing voor uw abonnement te implementeren. Geef in Azure Portal waarden op voor de parameters.

    Knop voor het implementeren van de Resource Manager-sjabloon in Azure.

  2. Voer op de pagina Aangepaste implementatie de volgende stappen uit:

    1. Selecteer voor resourcegroep een bestaande resourcegroep of maak een resourcegroep.

    2. Voer in het vak Sitenaam een naam in voor de web-app.

    3. Voer voor Naam van hostingplan een naam in voor het App Service-plan dat u wilt gebruiken voor het hosten van de web-app.

    4. Selecteer Controleren + maken.

      Schermopname van de pagina Aangepaste implementatie.

  3. Selecteer Maken op de pagina Beoordelen en maken.

  4. De implementatie kan enkele minuten duren. Selecteer Waarschuwingen (belpictogram) in de portal en selecteer vervolgens Naar de resourcegroep gaan.

    Schermopname van het bericht over de geslaagde implementatie met een koppeling om naar de resourcegroep te navigeren.

  5. Selecteer op de pagina Resourcegroep in de lijst met resources de web-app (contosoegriviewer in het volgende voorbeeld) die u hebt gemaakt.

    Schermopname van de pagina Resourcegroep met de geïmplementeerde resources.

  6. Selecteer op de pagina App Service voor uw web-app de URL om naar de website te gaan. De URL moet de volgende indeling hebben: https://<your-site-name>.azurewebsites.net.

    Schermopname van de App Service-pagina met de koppeling naar de site gemarkeerd.

  7. Controleer of de site wordt weergegeven en dat er zijn nog geen gebeurtenissen naar zijn gepost.

    Schermopname van de Event Grid Viewer-voorbeeld-app.

Abonneren op aangepast onderwerp

U abonneert u op een Event Grid-onderwerp om Event Grid te vertellen welke gebeurtenissen u wilt bijhouden en waar de gebeurtenissen moeten worden verzonden.

  1. Selecteer op de pagina Event Grid-onderwerp voor uw aangepaste onderwerp + Gebeurtenisabonnement op de werkbalk.

    Knop voor het toevoegen van een gebeurtenisabonnement

  2. Voer op de pagina Gebeurtenisabonnement maken de volgende stappen uit:

    1. Voer een naam in voor het gebeurtenisabonnement.

    2. Selecteer Webhook voor het eindpunttype.

    3. Kies Een eindpunt selecteren.

      Waarden opgeven voor gebeurtenisabonnement

    4. Voor het webhookeindpunt geeft u de URL van uw web-app op en voegt u api/updates toe aan de URL van de startpagina. Selecteer Confirm Selection (Selectie bevestigen).

      Eindpunt-URL opgeven

    5. Selecteer Maken als u terug bent op de pagina Gebeurtenisabonnement maken.

  3. 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.

    Schermopname van de Event Grid Viewer-app met de gebeurtenis Abonnement gevalideerd.

Een gebeurtenis verzenden naar het onderwerp

Nu gaan we een gebeurtenis activeren om te zien hoe het bericht via Event Grid naar het eindpunt wordt gedistribueerd. Gebruik Azure CLI of PowerShell om een testgebeurtenis te verzenden naar uw aangepaste onderwerp. Meestal worden de gebeurtenisgegevens verzonden via een toepassing of Azure-service.

Het eerste voorbeeld maakt gebruik van Azure CLI. In dit voorbeeld worden de URL en de sleutel voor het aangepaste onderwerp, plus de voorbeeldgegevens van de gebeurtenis opgehaald. Gebruik de naam van het aangepaste onderwerp voor <topic name>. Hiermee worden voorbeeldgebeurtenisgegevens gemaakt. Het element data van de JSON is de nettolading van de 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 waarmee HTTP-aanvragen worden verzonden.

Azure-CLI

  1. Selecteer Cloud Shell in Azure Portal. De Cloud Shell wordt geopend in het onderste deelvenster van de webbrowser.

    Het pictogram voor Cloud Shell selecteren

  2. Selecteer Bash in de linkerbovenhoek van het Cloud Shell-venster.

    Schermopname van Cloud Shell met Bash geselecteerd in de linkerbovenhoek.

  3. Voer de volgende opdracht uit om het eindpunt voor het onderwerp op te halen: Nadat u de opdracht hebt gekopieerd en geplakt, werkt u de onderwerpnaam en resourcegroepnaam bij voordat u de opdracht uitvoert. U publiceert voorbeeldgebeurtenissen naar dit onderwerpeindpunt.

    endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)
    
  4. Voer de volgende opdracht uit om de sleutel voor het aangepaste onderwerp op te halen: Nadat u de opdracht hebt gekopieerd en geplakt, moet u de onderwerpnaam en de naam van de resourcegroep bijwerken voordat u de opdracht uitvoert. Dit is de primaire sleutel van het Event Grid-onderwerp. Ga naar het tabblad Toegangssleutels van de pagina Event Grid-onderwerp om deze sleutel op te halen in Azure Portal. U hebt de toegangssleutel nodig als u een gebeurtenis voor een aangepast onderwerp wilt plaatsen.

    key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)
    
  5. Kopieer de volgende instructie met de gebeurtenisdefinitie en druk op 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. Voer de volgende Curl-opdracht uit om de gebeurtenis te posten: In de opdracht aeg-sas-key wordt de header ingesteld op de toegangssleutel die u eerder hebt ontvangen.

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

Azure PowerShell

In het tweede voorbeeld wordt PowerShell gebruikt om vergelijkbare stappen uit te voeren.

  1. Selecteer Cloud Shell in Azure Portal (of ga naar https://shell.azure.com/). De Cloud Shell wordt geopend in het onderste deelvenster van de webbrowser.

    Het pictogram voor Cloud Shell selecteren

  2. Selecteer in de Cloud Shell de optie PowerShell in de linkerbovenhoek van het Cloud Shell-venster. Zie de voorbeeldafbeelding van een Cloud Shell-venster in de sectie Azure CLI.

  3. Stel de volgende variabelen in. Nadat u elke opdracht hebt gekopieerd en geplakt, werkt u de onderwerpnaam en naam van de resourcegroep bij voordat u de opdracht uitvoert:

    Resourcegroep:

    $resourceGroupName = "<resource group name>"
    

    Naam van Event Grid-onderwerp:

    $topicName = "<topic name>"
    
  4. Voer de volgende opdrachten uit om het eindpunt en de sleutels voor het onderwerp op te halen:

    $endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint
    $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
    
  5. Bereid de gebeurtenis voor. Kopieer de instructies en voer deze uit in het Cloud Shell-venster.

    $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. Gebruik de cmdlet Invoke-WebRequest om de gebeurtenis te verzenden.

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

Controleren in de Event Grid-viewer

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.

Event Grid-viewer

Resources opschonen

Als u verder wilt werken met deze gebeurtenis, schoon dan de resources die u in dit artikel hebt gemaakt, niet op. Verwijder anders de resources die u in dit artikel hebt gemaakt.

  1. Selecteer Resourcegroepen in het linkermenu. Als u deze optie niet ziet in het linkermenu, selecteert u Alle services in het linkermenu en selecteert u Resourcegroepen.

    Schermopname van de pagina Resourcegroepen.

  2. Selecteer de resourcegroep om de pagina Resourcegroep te openen.

  3. Selecteer Resourcegroep verwijderen op de taakbalk.

  4. Controleer de verwijdering door de naam van de resourcegroep in te voeren en Verwijderen te selecteren.

    De andere resourcegroep die u in de afbeelding ziet, is gemaakt en gebruikt door het Cloud Shell-venster. Verwijder deze als u het Cloud Shell-venster later niet meer gaat gebruiken.

Volgende stappen

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

Zie de volgende voorbeelden voor meer informatie over het publiceren van gebeurtenissen naar en het verbruiken van gebeurtenissen uit Event Grid met behulp van verschillende programmeertalen.