Snabbstart: Dirigera anpassade händelser till Azure Queue Storage med Azure CLI och Event Grid
Azure Event Grid är en händelsetjänst för molnet. Azure Queue Storage är en av de händelsehanterare som stöds. I den här artikeln använder du Azure CLI för att skapa ett anpassat ämne, prenumerera på det anpassade ämnet och utlösa händelsen för att visa resultatet. Du skickar händelser till Queue Storage.
Om du inte har en Azure-prenumerationkan du skapa ett kostnads fritt konto innan du börjar.
Förutsättningar
Använd bash-miljön i Azure Cloud Shell.
Om du vill kan du i stället installera Azure CLI för att köra CLI-referenskommandon.
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. Fler inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. 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.56 eller senare av Azure CLI. Om du Azure Cloud Shell är den senaste versionen redan installerad.
Om du använder Azure PowerShell på den lokala datorn i stället för att använda Cloud Shell i Azure Portal ska du kontrollera att du har Azure PowerShell version 1.1.0 eller senare. Ladda ned den senaste versionen av Azure PowerShell på din Windows-dator från Azure downloads - Command-line tools (Azure-nedladdningar – Kommandoradsverktyg).
Den här artikeln innehåller kommandon för att använda Azure CLI.
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.
az group create --name gridResourceGroup --location westus2
Aktivera Event Grid Resource Provider
Om du inte tidigare har använt Event Grid i din Azure-prenumeration kan du behöva registrera Event Grid Resource Provider. Registrera providern genom att köra följande kommando:
az provider register --namespace Microsoft.EventGrid
Det kan ta en stund innan registreringen har slutförts. Du kan kontrollera status genom att köra:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
När registrationState är Registered kan du fortsätta.
Skapa en anpassat ämne
Ett event grid-ämne tillhandahåller en användardefinierad slutpunkt där du publicerar dina händelser. I följande exempel skapas det anpassade ämnet i din resursgrupp. Ersätt <topic_name> med ett unikt namn för ditt anpassade ämne. Ämnesnamnet för händelserutnätet måste vara unikt eftersom det representeras av en DNS-post.
az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup
Skapa Queue Storage
Innan du prenumererar på det anpassade ämnet ska vi ska slutpunkten för händelsemeddelandet. Du skapar en Queue Storage för att samla in händelserna.
storagename="<unique-storage-name>"
queuename="eventqueue"
az storage account create -n $storagename -g gridResourceGroup -l westus2 --sku Standard_LRS
az storage queue create --name $queuename --account-name $storagename
Prenumerera på ett anpassat ämne
Du prenumererar på ett anpassat ämne för att Event Grid vilka händelser du vill spåra. I följande exempel prenumererar vi på det anpassade ämne som du har skapat och resurs-ID:t för Queue Storage för slutpunkten. Med Azure CLI skickar du Queue Storage-ID:t som slutpunkten. Slutpunkten är i formatet:
/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-name>/queueservices/default/queues/<queue-name>
Följande skript hämtar lagringskontots resurs-ID för kön. Det skapar ID för Queue Storage och prenumererar på ett Event Grid-ämne. Det ställer in slutpunktstypen på storagequeue och använder kö-ID:t för slutpunkten.
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 <topic_name> -g gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name <event_subscription_name> \
--endpoint-type storagequeue \
--endpoint $queueid \
--expiration-date "<yyyy-mm-dd>"
Det konto som skapar händelseprenumerationen måste ha skrivbehörighet till Queue Storage. 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 ditt anpassade ämne
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. Använd återigen ditt anpassade ämnesnamn för <topic_name>.
endpoint=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name <topic_name> -g gridResourceGroup --query "key1" --output tsv)
För att förenkla den här artikeln skickar du exempelhändelsedata till det anpassade ämnet. Ett program eller en Azure-tjänst skulle vanligtvis skicka sådana händelsedata. CURL är ett verktyg som skickar HTTP-förfrågningar. I den här artikeln använder du CURL för att skicka händelsen till det anpassade ämnet. Följande exempel skickar 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 Queue Storage i portalen och kontrollera att Event Grid skickade de tre händelserna till kön.

Anteckning
Om du använder en Azure Queue Storage-utlösare för Azure Functions för en kö som tar emot meddelanden från Event Grid kan följande felmeddelande visas vid funktionskörningen: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.
Anledningen är att när du använder en Azure Queue Storage-utlösareförväntar Azure Functions en base64-kodad sträng , men Event Grid skickar meddelanden till en lagringskö i oformaterat textformat. För närvarande går det inte att konfigurera köutlösaren för att Azure Functions godkänna oformaterad text.
Rensa resurser
Om du planerar att fortsätta arbeta med den här händelsen 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 om att publicera händelser till och använda händelser från Event Grid med olika programmeringsspråk.
