Delen via


Quickstart: Aangepaste gebeurtenissen routeren naar Azure Queue Storage via Event Grid met behulp van Azure CLI

Azure Event Grid is een uiterst schaalbare en serverloze gebeurtenisbroker die u kunt gebruiken om toepassingen te integreren met behulp van gebeurtenissen. Event Grid levert gebeurtenissen aan ondersteunde gebeurtenis-handlers en Azure Queue Storage is een van deze gebeurtenissen. In dit artikel gebruikt u Azure CLI voor de volgende stappen:

  1. Hiermee wordt een aangepast Event Grid-onderwerp gemaakt.
  2. Maak een Azure Queue-abonnement voor het aangepaste onderwerp.
  3. Voorbeeldgebeurtenissen verzenden naar het aangepaste onderwerp.
  4. Controleer of deze gebeurtenissen worden bezorgd in Azure Queue Storage.

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

Een brongroep maken

Event Grid-onderwerpen zijn Azure-resources en moeten in een Azure-resourcegroep worden geplaatst. De resourcegroep is een logische verzameling waarin Azure-resources worden geïmplementeerd en beheerd.

Een resourcegroep maken met de opdracht az group create. In het volgende voorbeeld wordt een resourcegroep met de naam gridResourceGroup gemaakt op de locatie westus2.

Notitie

Selecteer Probeer het naast het CLI-voorbeeld om Cloud Shell in het rechterdeelvenster te starten. Selecteer de knop Kopiëren om de opdracht te kopiëren, plak deze in het Cloud Shell-venster en druk op Enter om de opdracht uit te voeren.

az group create --name gridResourceGroup --location westus2

De Event Grid-resourceprovider inschakelen

  1. Als u Event Grid in uw Azure-abonnement nog niet eerder hebt gebruikt, moet u mogelijk de Event Grid-resourceprovider registreren. Voer de volgende opdracht uit om de provider te registreren:

    az provider register --namespace Microsoft.EventGrid
    
  2. Het kan even duren voordat de registratie is voltooid. Voer de volgende opdracht uit om de status te controleren:

    az provider show --namespace Microsoft.EventGrid --query "registrationState"
    

    Wanneer registrationStateRegistered is, bent u klaar om door te gaan.

Een aangepast onderwerp maken

Een Event Grid-onderwerp biedt een door de gebruiker gedefinieerd eindpunt waarnaar u uw gebeurtenissen plaatst. In het volgende voorbeeld wordt het aangepaste onderwerp in uw resourcegroep gemaakt. Vervang <topic_name> door een unieke naam voor uw aangepaste onderwerp. De Event Grid-onderwerpnaam moet uniek zijn omdat deze wordt vertegenwoordigd door een DNS-vermelding (Domain Name System).

  1. Geef een naam op voor het onderwerp.

    topicname="<TOPIC NAME>"
    
  2. Voer de volgende opdracht uit om het onderwerp te maken.

    az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
    

Opslagwachtrij maken

Voordat u zich abonneert op het aangepaste onderwerp, gaan we het eindpunt voor het gebeurtenisbericht maken. U maakt een opslagwachtrij voor het verzamelen van de gebeurtenissen.

  1. Geef een unieke naam op voor het Azure Storage-account.

    storagename="<STORAGE ACCOUNT NAME>"    
    
  2. Voer de volgende opdrachten uit om een Azure Storage-account en een wachtrij (benoemd eventqueue) te maken in de opslag.

    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
    

Abonneren op een aangepast onderwerp

In het volgende voorbeeld ziet u hoe u zich abonneert op het aangepaste onderwerp dat u hebt gemaakt, en hoe de resource-id van de opslagwachtrij wordt doorgegeven voor het eindpunt. Met Azure CLI geeft u de opslag-id van Queue door als het eindpunt. Het eindpunt heeft deze indeling:

/subscriptions/<AZURE SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP NAME>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>/queueservices/default/queues/<QUEUE NAME>

Met het volgende script wordt de resource-id van het opslagaccount voor de wachtrij opgehaald. Hiermee wordt de id voor de wachtrijopslag samengesteld en wordt u geabonneerd op een Event Grid-onderwerp. Het type eindpunt wordt ingesteld op storagequeue en de wachtrij-id wordt gebruikt voor het eindpunt.

Belangrijk

Vervang de tijdelijke aanduiding voor de vervaldatum (<yyyy-mm-dd>) door een werkelijke waarde. Bijvoorbeeld: 2022-11-17 voordat u de opdracht uitvoert.

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>"

Het account dat wordt gemaakt van het gebeurtenisabonnement, moet schrijftoegang tot de opslagwachtrij hebben. U ziet dat er een vervaldatum is ingesteld voor het abonnement.

Als u de REST-API gebruikt om het abonnement te maken, geeft u de id van het opslagaccount en de naam van de wachtrij als een afzonderlijke parameter door.

"destination": {
  "endpointType": "storagequeue",
  "properties": {
    "queueName":"eventqueue",
    "resourceId": "/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-name>"
  }
  ...

Een gebeurtenis verzenden naar het aangepaste onderwerp

We activeren een gebeurtenis om te zien hoe het bericht via Event Grid naar het eindpunt wordt gedistribueerd. Eerst gaan we de URL en de sleutel voor het aangepaste onderwerp ophalen.

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)

Ter vereenvoudiging van dit artikel gebruikt u voorbeeldgebeurtenisgegevens om naar het aangepaste onderwerp te verzenden. Meestal worden de gebeurtenisgegevens verzonden via een toepassing of Azure-service. CURL is een hulpprogramma waarmee HTTP-aanvragen worden verzonden. In dit artikel gebruikt u CURL om de gebeurtenis naar het aangepaste onderwerp te verzenden. In het volgende voorbeeld worden drie gebeurtenissen verzonden naar het Event Grid-onderwerp:

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

Navigeer naar de opslagwachtrij in de portal en u ziet dat Event Grid deze drie gebeurtenissen naar de wachtrij heeft verzonden.

Screenshot showing the list of messages in the queue that are received from Event Grid.

Resources opschonen

Als u verder wilt werken met deze gebeurtenis, schoon dan de resources die u in dit artikel hebt gemaakt, niet op. Gebruik anders de volgende opdracht om de resources te verwijderen die u in dit artikel hebt gemaakt.

az group delete --name gridResourceGroup

Volgende stappen

U weet nu hoe u 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.