Gebeurtenissen leveren aan webhooks met behulp van naamruimteonderwerpen - Azure Portal (preview)
Het artikel bevat stapsgewijze instructies voor het publiceren van gebeurtenissen naar Azure Event Grid in de JSON-indeling van CloudEvents en het leveren van deze gebeurtenissen met behulp van het pushleveringsmodel. Om specifiek te zijn, publiceert u gebeurtenissen naar een naamruimteonderwerp in Event Grid en pusht u deze gebeurtenissen van een gebeurtenisabonnement naar een webhookhandlerbestemming. Zie het overzicht van pushlevering voor meer informatie over het pushleveringsmodel.
Notitie
Azure Event Grid-naamruimten ondersteunen momenteel SAS-token (Shared Access Signatures) en verificatie van toegangssleutels.
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
Een Event Grid-naamruimte maken
Een Event Grid-naamruimte biedt een door de gebruiker gedefinieerd eindpunt waarnaar u uw gebeurtenissen plaatst. In het volgende voorbeeld wordt een naamruimte in uw resourcegroep gemaakt met behulp van Bash in Azure Cloud Shell. De naamruimtenaam moet uniek zijn omdat deze deel uitmaakt van een DNS-vermelding (Domain Name System).
Ga naar de Azure Portal.
Typ
Event Grid Namespaces
en selecteerEvent Grid Namespaces
in de zoekbalk in het onderwerp de resultaten.Selecteer + Maken op de opdrachtbalk op de pagina Event Grid-naamruimten.
Voer op de pagina Naamruimte maken de volgende stappen uit:
- Selecteer het Azure-abonnement waarin u de naamruimte wilt maken.
- Maak een nieuwe resourcegroep door Nieuwe maken te selecteren of een bestaande resourcegroep te selecteren.
- Voer een naam in voor de naamruimte.
- Selecteer de locatie waar u de resourcegroep wilt maken.
- Selecteer vervolgens Controleren + maken.
- Selecteer Maken op de pagina Beoordelen en maken.
Selecteer op de pagina Implementatie de optie Naar de resource gaan na de geslaagde implementatie.
De toegangssleutel verkrijgen
- Selecteer op de pagina Event Grid-naamruimte toegangstoetsen in het menu links.
- Selecteer de knop Kopiëren naast de toegangssleutel.
- Sla de toegangssleutel ergens op. U gebruikt deze verderop in deze quickstart.
Een onderwerp maken in de naamruimte
Maak een onderwerp met alle gebeurtenissen die zijn gepubliceerd naar het naamruimte-eindpunt.
- Selecteer Onderwerpen in het linkermenu.
- Selecteer + Onderwerp op de opdrachtbalk op de pagina Onderwerpen.
- Voer op de pagina Onderwerp maken de volgende stappen uit:
Het eindpunt van een bericht maken
Voordat u zich abonneert op de gebeurtenissen, gaan we het 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.
Selecteer Implementeren in Azure om de oplossing voor uw abonnement te implementeren.
Voer op de pagina Aangepaste implementatie de volgende stappen uit:
Selecteer voor Resourcegroep de resourcegroep die u hebt gemaakt toen u het opslagaccount maakte. Het is eenvoudiger om op te schonen nadat u klaar bent met de zelfstudie door de resourcegroep te verwijderen.
Voer in het vak Sitenaam een naam in voor de web-app.
Voer voor Naam van hostingplan een naam in voor het App Service-plan dat u wilt gebruiken voor het hosten van de web-app.
Selecteer Controleren + maken.
Selecteer Maken op de pagina Beoordelen en maken.
Het duurt enkele minuten om de implementatie te voltooien. Selecteer Op de pagina Implementatie de optie Ga naar de resourcegroep.
Selecteer in de lijst met resources op de pagina Resourcegroep de web-app die u hebt gemaakt. U ziet ook het App Service-plan en het opslagaccount in deze lijst.
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
.Controleer of u de site ziet, maar dat er nog geen gebeurtenissen op de site zijn geplaatst.
Belangrijk
Houd het venster Azure Event Grid Viewer geopend, zodat u gebeurtenissen kunt zien terwijl ze worden gepost.
Een gebeurtenisabonnement maken
Maak een gebeurtenisabonnement dat de leveringsmodus instelt op Push, die ondersteuning biedt voor pushlevering.
- Ga naar het tabblad of venster met de Event Grid-naamruimtepagina geopend vanaf het tabblad of venster waarop de Event Hubs-naamruimtepagina is geopend.
- Selecteer onderwerpen in het linkermenu op de pagina Event Grid-naamruimte.
- Selecteer op de pagina Onderwerpen het onderwerp dat u in de vorige stap hebt gemaakt.
- Selecteer + Abonnement op de opdrachtbalk.
- Voer op de pagina Gebeurtenisabonnement maken de volgende stappen uit:
Voer op het tabblad Basic een naam in voor het gebeurtenisabonnement.
Selecteer Push voor de gebeurtenisleveringsmodus.
Selecteer Webhook voor eindpunttype.
Selecteer Een eindpunt configureren.
Geef op de pagina Webhook het eindpunt op (bijvoorbeeld:
https://spegridsite0520.azurewebsites.net/api/updates
) zoals wordt weergegeven in het volgende voorbeeld en selecteer Bevestig de selectie.Selecteer Maken op de pagina Abonnement maken.
Gebeurtenissen verzenden naar uw onderwerp
Verzend nu een voorbeeldgebeurtenis naar het onderwerp van de naamruimte door de stappen in deze sectie te volgen.
Variabelen declareren
Start Cloud Shell in Azure Portal. Schakel over naar Bash.
Voer de volgende opdracht uit om een variabele te declareren voor de naam van de resourcegroep. Vervang door
RESOUREGROUPNAME
de naam van uw Azure-resourcegroep.resource_group=RESOURCEGROUPNAME
Voer in Cloud Shell de volgende opdracht uit om een variabele te declareren voor de naamruimtenaam. Vervang
NAMESPACENAME
door de naam van uw Event Grid-naamruimte.namespace=NAMESPACENAME
Voer de volgende opdracht uit om een variabele te declareren voor het opslaan van de waarde van de toegangssleutel die u eerder hebt genoteerd. Vervang door
ACCESSKEY
de waarde van de toegangssleutel voor uw Event Grid-naamruimte.key=ACCESSKEY
Voer in Cloud Shell de volgende opdracht uit om een variabele te declareren voor de naamruimtenaam.
topic=TOPICNAME
Een gebeurtenis publiceren
Haal de hostnaam van de naamruimte op. U gebruikt deze om het HTTP-eindpunt voor de naamruimte op te stellen waarnaar gebeurtenissen worden verzonden. De volgende bewerkingen waren voor het eerst beschikbaar met api-versie
2023-06-01-preview
. U kunt de hostnaam ook ophalen op de overzichtspagina van uw Event Grid-naamruimte in Azure Portal.publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic:publish?api-version=2023-06-01-preview
Maak een voorbeeldgebeurtenis die compatibel is met CloudEvents :
event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
Het
data
element is de nettolading van uw gebeurtenis. Elke juist opgemaakte JSON kan in dit veld worden ingevoerd. Zie de specificaties van CloudEvents voor meer informatie over eigenschappen (ook wel contextkenmerken genoemd) die in een gebeurtenis kunnen worden gebruikt.Gebruik CURL om de gebeurtenis naar het onderwerp te verzenden. CURL is een hulpprogramma waarmee HTTP-aanvragen worden verzonden.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
Controleer of Azure Event Grid Viewer de gebeurtenis heeft ontvangen
Controleer of in de Azure Event Grid Viewer-web-app de gebeurtenissen worden weergegeven die zijn ontvangen van Event Grid.
Gerelateerde inhoud
In deze quickstart hebt u een webhook gebruikt als gebeurtenis-handler. Zie Gebeurtenissen bezorgen bij Azure Event Hubs met behulp van naamruimteonderwerpen voor quickstarts die een Azure Event Hub als gebeurtenis-handler gebruiken.