Rychlý start: Směrování vlastních událostí do služby Azure Queue Storage přes Event Grid pomocí Azure CLI

Azure Event Grid je vysoce škálovatelný a bezserverový zprostředkovatel událostí, který můžete použít k integraci aplikací pomocí událostí. Event Grid doručuje události do podporovaných obslužných rutin událostí a azure Queue Storage je jedním z nich. V tomto článku použijete Azure CLI k následujícím krokům:

  1. Vytvoří vlastní téma Event Gridu.
  2. Vytvořte předplatné azure Queue pro vlastní téma.
  3. Odeslání ukázkových událostí do vlastního tématu
  4. Ověřte, že se tyto události doručují do služby Azure Queue Storage.

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Vytvoření skupiny zdrojů

Témata služby Event Grid jsou prostředky Azure a musí být umístěné ve skupině prostředků Azure. Skupina prostředků je logická kolekce, ve které se nasazují a spravují prostředky Azure.

Vytvořte skupinu prostředků pomocí příkazu az group create. Následující příklad vytvoří skupinu prostředků gridResourceGroup v umístění westus2.

Poznámka:

Výběrem možnosti Vyzkoušet vedle příkladu rozhraní příkazového řádku spusťte Cloud Shell v pravém podokně. Výběrem tlačítka Kopírovat zkopírujte příkaz, vložte ho do okna Cloud Shellu a stisknutím klávesy ENTER příkaz spusťte.

az group create --name gridResourceGroup --location westus2

Povolení poskytovatele prostředků Event Gridu

  1. Pokud jste službu Event Grid ve svém předplatném Azure ještě nepoužívali, možná budete muset zaregistrovat poskytovatele prostředků Event Gridu. Spuštěním následujícího příkazu zaregistrujte poskytovatele:

    az provider register --namespace Microsoft.EventGrid
    
  2. Dokončení registrace může chvíli trvat. Pokud chcete zkontrolovat stav, spusťte následující příkaz:

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

    Jakmile registrationState je Registered, můžete pokračovat.

Vytvoření vlastního tématu

Téma Event Gridu poskytuje uživatelem definovaný koncový bod, do kterého publikujete události. Následující příklad vytvoří vlastní téma ve vaší skupině prostředků. Nahraďte <topic_name> jedinečným názvem vlastního tématu. Název tématu Event Gridu musí být jedinečný, protože je reprezentován položkou DNS (Domain Name System).

  1. Zadejte název tématu.

    topicname="<TOPIC NAME>"
    
  2. Spuštěním následujícího příkazu vytvořte téma.

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

Vytvoření Queue Storage

Před přihlášením k odběru vlastního tématu vytvoříme koncový bod pro zprávy události. Pro shromažďování událostí můžete vytvořit Queue Storage.

  1. Zadejte jedinečný název účtu služby Azure Storage.

    storagename="<STORAGE ACCOUNT NAME>"    
    
  2. Spuštěním následujících příkazů vytvořte účet služby Azure Storage a frontu (pojmenovanou eventqueue) v úložišti.

    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
    

Přihlášení k odběru vlastního tématu

Následující příklad se přihlásí k odběru vlastního tématu, které jste vytvořili, a předá ID prostředku služby Queue Storage pro koncový bod. Pomocí Azure CLI předáte ID Queue Storage jako koncový bod. Koncový bod je ve formátu:

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

Následující skript načte ID prostředku účtu úložiště pro danou frontu. Vytvoří ID pro službu Queue Storage a přihlásí se k odběru tématu Event Gridu. Nastaví typ koncového bodu na storagequeue a použije ID fronty pro daný koncový bod.

Důležité

Zástupný symbol data vypršení platnosti (<yyyy-mm-dd>) nahraďte skutečnou hodnotou. Příklad: 2022-11-17 před spuštěním příkazu.

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

Účet, který vytváří odběr události, musí mít přístup k zápisu do služby Queue Storage. Všimněte si, že je nastavené datum vypršení platnosti odběru.

Pokud k vytvoření odběru používáte rozhraní REST API, předáte ID účtu úložiště a název fronty jako samostatný parametr.

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

Odeslání události do vlastního tématu

Teď aktivujeme událost, abychom viděli, jak služba Event Grid distribuuje zprávu do vašeho koncového bodu. Nejprve získáme adresu URL a klíč vlastního tématu.

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)

V zájmu zjednodušení tohoto článku použijte k odeslání do vlastního tématu ukázková data události. Obvykle by aplikace nebo služba Azure odesílala data události. CURL je nástroj, který odesílá požadavky HTTP. V tomto článku použijete CURL k odeslání události do vlastního tématu. Následující příklad odešle do tématu Event Gridu tři události:

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

Přejděte na portálu na Queue Storage a všimněte si, že služba Event Grid odeslala tyto tři události do fronty.

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

Vyčištění prostředků

Pokud chcete pokračovat v práci s touto událostí, nevyčišťujte prostředky vytvořené v rámci tohoto článku. Jinak pomocí následujícího příkazu odstraňte prostředky, které jste v rámci tohoto článku vytvořili.

az group delete --name gridResourceGroup

Další kroky

Když teď víte, jak vytvářet témata a odběry událostí, zjistěte, s čím vám služba Event Grid ještě může pomoct:

V následujících ukázkách se dozvíte o publikování událostí do Event Gridu a jejich využívání pomocí různých programovacích jazyků.