Snabbstart: Dirigera anpassade händelser till en kö med hjälp av Event Grid och Azure CLI
Azure Event Grid är en mycket skalbar och serverlös händelsekö som du kan använda för att integrera program via händelser. Event Grid levererar händelser till händelsehanterare som stöds och Azure Queue Storage är en av dem.
I den här snabbstarten använder du Azure CLI för att skapa ett anpassat Event Grid-ämne och en kölagringsprenumeration för det ämnet. Sedan skickar du exempelhändelser till det anpassade ämnet och kontrollerar att dessa händelser levereras till en kö.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Skapa en resursgrupp
Event Grid-ämnen är Azure-resurser och de 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
.
Välj Öppna Cloud Shell för att öppna Azure Cloud Shell i den högra rutan. Välj knappen Kopiera för att kopiera kommandot, klistra in det i Cloud Shell och välj sedan returnyckeln för att köra kommandot.
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 din resursgrupp.
Ersätt <TOPIC NAME>
med ett unikt namn för ditt anpassade ämne. Event Grid-ämnesnamnet måste vara unikt eftersom en DNS-post (Domain Name System) representerar det.
Ange ett namn för ämnet:
topicname="<TOPIC NAME>"
Kör följande kommando för att skapa ämnet:
az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
Skapa en kö
Innan du prenumererar på det anpassade ämnet skapar du slutpunkten för händelsemeddelandet. Du skapar en kö för att samla in händelserna.
Ange ett unikt namn för Azure Storage-kontot:
storagename="<STORAGE ACCOUNT NAME>"
Kör följande kommandon för att skapa ett lagringskonto och en kö (med namnet
eventqueue
) i lagringen:queuename="eventqueue" az storage account create -n $storagename -g gridResourceGroup -l westus2 --sku Standard_LRS key="$(az storage account keys list -n $storagename --query "[0].{value:value}" --output tsv)" az storage queue create --name $queuename --account-name $storagename --account-key $key
Prenumerera på ett anpassat ämne
I följande exempel prenumererar du på det anpassade ämne som du skapade och skickar resurs-ID:t för kön för slutpunkten. Med Azure CLI skickar du kö-ID:t som slutpunkt. Slutpunkten är i det här formatet:
/subscriptions/<AZURE SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP NAME>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>/queueservices/default/queues/<QUEUE NAME>
Följande skript hämtar lagringskontots resurs-ID för kön. Den skapar kö-ID:t och prenumererar på ett Event Grid-ämne. Det ställer in slutpunktstypen på storagequeue
och använder kö-ID:t för slutpunkten.
Innan du kör kommandot ersätter du platshållaren för förfallodatumet (<yyyy-mm-dd>
) med ett faktiskt värde för året, månaden och dagen.
storageid=$(az storage account show --name $storagename --resource-group gridResourceGroup --query id --output tsv)
queueid="$storageid/queueservices/default/queues/$queuename"
topicid=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name mystoragequeuesubscription \
--endpoint-type storagequeue \
--endpoint $queueid \
--expiration-date "<yyyy-mm-dd>"
Kontot som skapar händelseprenumerationen måste ha skrivåtkomst till kön. Observera att ett förfallodatum har angetts för prenumerationen.
Om du använder REST-API:et för att skapa prenumerationen skickar du ID:t för lagringskontot och namnet på kön som en separat parameter:
"destination": {
"endpointType": "storagequeue",
"properties": {
"queueName":"eventqueue",
"resourceId": "/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-name>"
}
...
Skicka en händelse till det anpassade ämnet
Utlös en händelse för att se hur Event Grid distribuerar meddelandet till slutpunkten. Hämta först URL:en och nyckeln 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 enkelhetens skull i den här artikeln använder du exempelhändelsedata för att skicka till det anpassade ämnet. Vanligtvis skickar ett program eller en Azure-tjänst händelsedata.
CURL-verktyget skickar HTTP-begäranden. I den här artikeln använder du cURL för att skicka händelsen till det anpassade ämnet. I följande exempel skickas tre händelser till Event Grid-ämnet:
for i in 1 2 3
do
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"} ]'
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
done
Gå till kön i Azure Portal och observera att Event Grid skickade dessa tre händelser till kön.
Rensa resurser
Om du planerar att fortsätta arbeta med den här händelsen ska du inte rensa resurserna som du skapade i den här artikeln. Annars använder du följande kommando för att ta bort resurserna:
az group delete --name gridResourceGroup
Relaterat innehåll
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 Azure 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
Mer information om hur du publicerar händelser till och använder händelser från Event Grid med hjälp av olika programmeringsspråk finns i följande exempel: