Snabbstart: Dirigera anpassade händelser till webbslutpunkten med Azure CLI och Event Grid
I den här artikeln använder du Azure CLI för att skapa ett anpassat ämne i Azure Event Grid, prenumerera på det anpassade ämnet och utlösa händelsen för att visa resultatet.
Kommentar
Om du är nybörjare på Azure Event Grid kan du läsa Vad är Azure Event Grid för att få en översikt över tjänsten innan du går igenom den här självstudien.
Normalt kan du skicka händelser till en slutpunkt som bearbetar informationen om händelsen och utför åtgärder. Men för att enkelt beskriva den här artikeln kan skicka du händelser till en webbapp som samlar in och visar meddelanden.
När du är klar kan se du att händelsedata som har skickats till webbappen.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Den här artikeln kräver version 2.0.70 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
Skapa en resursgrupp
Event Grid-ämnen är Azure-resurser och måste placeras i en Azure-resursgrupp. Resursgruppen är en logisk samling där Azure-resurser distribueras och hanteras.
Skapa en resursgrupp med kommandot az group create. I följande exempel skapas en resursgrupp med namnet gridResourceGroup på platsen westus2. Om du väljer Prova visas Azure Cloud Shell-fönstret i den högra rutan. Välj sedan Kopiera för att kopiera kommandot och klistra in det i Azure Cloud Shell-fönstret och tryck på RETUR för att köra kommandot. Ändra namnet på resursgruppen och platsen om du vill.
az group create --name gridResourceGroup --location westus2
Aktivera Event Grid-resursprovidern
Om du inte tidigare har använt Event Grid i din Azure-prenumeration kan du behöva registrera Event Grid-resursprovidern. Registrera providern genom att köra följande kommando:
az provider register --namespace Microsoft.EventGrid
Det kan ta en stund innan registreringen är klar. Kontrollera statusen genom att köra följande kommando:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
När
registrationState
ärRegistered
kan du fortsätta.
Skapa en anpassat ämne
Ett Event Grid-ämne innehåller en användardefinierad slutpunkt som du publicerar dina händelser till. I följande exempel skapas det anpassade ämnet i resursgruppen med bash i Azure Cloud Shell. Ersätt <your-topic-name>
med ett unikt namn för ditt ämne. Det anpassade ämnesnamnet måste vara unikt eftersom det är en del av DNS-posten (Domain Name System). Dessutom måste det bestå av mellan 3 och 50 tecken och bara innehålla a–z, A–Z, 0–9 och "-"
Kopiera följande kommando, ange ett namn för ämnet och tryck på RETUR för att köra kommandot.
topicname=<your-topic-name>
az eventgrid topic create
Använd kommandot för att skapa ett anpassat ämne.az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
Skapa en slutpunkt för meddelanden
Innan du prenumererar på det anpassade ämnet ska vi ska slutpunkten för händelsemeddelandet. Slutpunkten utför vanligtvis åtgärder baserat på informationen om händelsen. För att förenkla den här snabbstarten distribuerar du en fördefinierad webbapp som visar händelsemeddelandena. Den distribuerade lösningen innehåller en App Service-plan,en webbapp för App Service och källkod från GitHub.
Kopiera följande kommando, ange ett namn för webbappen (Exempel på Loggboken i Event Grid) och tryck på RETUR för att köra kommandot. Ersätt
<your-site-name>
med ett unikt namn för din webbapp. Webbappnamnet måste vara unikt eftersom det är en del av DNS-posten.sitename=<your-site-name>
az deployment group create
Kör för att distribuera webbappen med hjälp av en Azure Resource Manager-mall.az deployment group create \ --resource-group gridResourceGroup \ --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \ --parameters siteName=$sitename hostingPlanName=viewerhost
Distributionen kan ta några minuter att slutföra. Efter distributionen har slutförts kan du visa webbappen för att kontrollera att den körs. I en webbläsare navigerar du till: https://<your-site-name>.azurewebsites.net
Webbplatsen bör visas utan några meddelanden.
Prenumerera på ett anpassat ämne
Du prenumererar på ett Event Grid-ämne för att berätta för Event Grid vilka händelser du vill spåra och var dessa händelser ska skickas. I följande exempel prenumererar vi på det anpassade ämne du just skapat, och URL från din webbapp skickas som slutpunkt för händelseavisering.
Slutpunkten för ditt webbprogram måste innehålla suffixet /api/updates/
.
Kopiera följande kommando, ersätt
$sitename
med namnet på webbappen som du skapade i föregående steg och tryck på RETUR för att köra kommandot.endpoint=https://$sitename.azurewebsites.net/api/updates
Kör följande kommando för att hämta resurs-ID:t för det ämne som du skapade.
topicresourceid=$(az eventgrid topic show --resource-group gridResourceGroup --name $topicname --query "id" --output tsv)
Kör följande kommando för att skapa en prenumeration på det anpassade ämnet med hjälp av slutpunkten.
az eventgrid event-subscription create \ --source-resource-id $topicresourceid \ --name demoViewerSub \ --endpoint $endpoint
Visa ditt webbprogram igen och observera att en händelse för verifieringen av prenumerationen har skickats till den. Välj ögonikonen för att utöka informationen om händelsen. Händelserutnätet skickar valideringshändelsen så att slutpunkten kan bekräfta att den vill ta emot händelsedata. Webbappen inkluderar kod för att verifiera prenumerationen.
Skicka en händelse till det anpassade ämnet
Nu ska vi utlösa en händelse och se hur Event Grid distribuerar meddelandet till slutpunkten. Först måste vi ta fram URL och nyckel för det anpassade ämnet.
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)
För att göra den här artikeln enklare använder du exempelhändelsedata för att skicka till det anpassade ämnet. Ett program eller en Azure-tjänst skulle vanligtvis skicka sådana händelsedata. I följande exempel skapas exempelhändelsedata:
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"} ]'
Elementet data
av JSON är händelsens nyttolast. All välformulerad JSON kan stå i det här fältet. Du kan också använda ämnesfältet för avancerad omdirigering och filtrering.
CURL är ett verktyg som skickar HTTP-förfrågningar. I den här artikeln använder vi CURL till att skicka händelsen till ämnet.
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
Du har utlöst händelsen och Event Grid skickade meddelandet till den slutpunkt som du konfigurerade när du prenumererade. Visa din webbapp om du vill se händelsen som du har skickat.
[{
"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}"
}]
Rensa resurser
Om du planerar att fortsätta arbeta med den här händelsen eller händelsevisningsappen ska du inte rensa upp bland de resurser som skapades i den här artikeln. I annat fall kan du använda kommandona nedan för att ta bort alla resurser som har skapats i den här artikeln.
az group delete --name gridResourceGroup
Nästa steg
Nu när du vet hur du skapar ämnen och prenumerationer på händelser kan du läsa mer om vad Event Grid kan hjälpa dig med:
- Om Event Grid
- Dirigera Blob Storage-händelser till en anpassad webbslutpunkt
- Övervaka ändringar på virtuella maskiner med Azure Event Grid och Logic Apps
- Strömma stordata till ett datalager
Se följande exempel för att lära dig mer om att publicera händelser till och använda händelser från Event Grid med olika programmeringsspråk.