Hızlı başlangıç: Azure CLı ve Event Grid ile Azure kuyruk depolama 'ya özel olayları yönlendirmeQuickstart: Route custom events to Azure Queue storage with Azure CLI and Event Grid

Azure Event Grid, bulut için bir olay oluşturma hizmetidir.Azure Event Grid is an eventing service for the cloud. Azure Kuyruk depolama, desteklenen olay işleyicilerinden biridir.Azure Queue storage is one of the supported event handlers. Bu makalede Azure CLI ile özel bir konu oluşturacak, bu özel konuya abone olacak ve olayı tetikleyerek sonucu görüntüleyeceksiniz.In this article, you use the Azure CLI to create a custom topic, subscribe to the custom topic, and trigger the event to view the result. Kuyruk depolamaya olayları gönderirsiniz.You send the events to the Queue storage.

Azure aboneliğinizyoksa başlamadan önce ücretsiz bir hesap oluşturun.If you don't have an Azure subscription, create a free account before you begin.

Azure Cloud Shell kullanmaUse Azure Cloud Shell

Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı Azure Cloud Shell.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Azure hizmetleriyle çalışmak için Cloud Shell ile bash veya PowerShell kullanabilirsiniz.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Bu makaledeki kodu, yerel ortamınıza herhangi bir şey yüklemeye gerek kalmadan çalıştırmak için Cloud Shell önceden yüklenmiş komutları kullanabilirsiniz.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell başlamak için:To start Azure Cloud Shell:

SeçenekOption Örnek/bağlantıExample/Link
Kod bloğunun sağ üst köşesindeki Deneyin’i seçin.Select Try It in the upper-right corner of a code block. Dene ' nin seçilmesi, kodu Cloud Shell otomatik olarak kopyalamaz.Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell için deneme örneği
https://shell.azure.comgidin veya tarayıcınızda Cloud Shell açmak Için Cloud Shell Başlat düğmesini seçin.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Yeni bir pencerede başlatma Cloud Shell Launch Cloud Shell in a new window
Azure Portalsağ üstteki menü çubuğunda Cloud Shell düğmesini seçin.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure portaldaki Cloud Shell düğmesi

Bu makaledeki kodu Azure Cloud Shell çalıştırmak için:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell başlatın.Start Cloud Shell.

  2. Kodu kopyalamak için bir kod bloğunda Kopyala düğmesini seçin.Select the Copy button on a code block to copy the code.

  3. Windows ve Linux 'ta Ctrl+SHIFT+v ' i seçerek veya macos 'ta cmd+SHIFT+v ' i seçerek kodu Cloud Shell oturumuna yapıştırın.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Kodu çalıştırmak için ENTER ' u seçin.Select Enter to run the code.

Azure portal Cloud Shell kullanmak yerine yerel makinenizde Azure CLı veya Azure PowerShell kullanıyorsanız, aşağıdaki Azure CLı ve Azure PowerShell sürümlerine sahip olduğunuzdan emin olun.If you are using Azure CLI or Azure PowerShell on your local machine instead of using Cloud Shell in the Azure portal, ensure that you have the following versions of Azure CLI and Azure PowerShell.

Bu makale, Azure CLı kullanmaya yönelik komutlar sağlar.This article gives you commands for using Azure CLI.

Kaynak grubu oluşturmaCreate a resource group

Event Grid konuları Azure kaynaklarıdır ve bir Azure kaynak grubuna yerleştirilmelidir.Event Grid topics are Azure resources, and must be placed in an Azure resource group. Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal koleksiyondur.The resource group is a logical collection into which Azure resources are deployed and managed.

az group create komutuyla bir kaynak grubu oluşturun.Create a resource group with the az group create command.

Aşağıdaki örnek westus2 konumunda gridResourceGroup adlı bir kaynak grubu oluşturur.The following example creates a resource group named gridResourceGroup in the westus2 location.

az group create --name gridResourceGroup --location westus2

Event Grid kaynak sağlayıcısını etkinleştirmeEnable Event Grid resource provider

Azure aboneliğinizde daha önce Event Grid kullanmadıysanız Event Grid kaynak sağlayıcısına kaydolmanız gerekebilir.If you haven't previously used Event Grid in your Azure subscription, you may need to register the Event Grid resource provider. Sağlayıcıyı kaydetmek için şu komutu çalıştırın:Run the following command to register the provider:

az provider register --namespace Microsoft.EventGrid

Kayıt işleminin tamamlanması biraz sürebilir.It may take a moment for the registration to finish. Durumu denetlemek için şunu çalıştırın:To check the status, run:

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

registrationState Registered olduğu zaman devam edebilirsiniz.When registrationState is Registered, you're ready to continue.

Özel konu oluşturmaCreate a custom topic

Event grid konusu, olaylarınızı göndereceğiniz kullanıcı tanımlı bir uç nokta sağlar.An event grid topic provides a user-defined endpoint that you post your events to. Aşağıdaki örnekte özel konu, kaynak grubunuzda oluşturulur.The following example creates the custom topic in your resource group. <topic_name> değerini özel konunuz için benzersiz bir adla değiştirin.Replace <topic_name> with a unique name for your custom topic. Bir DNS girişi ile temsil edildiğinden Event Grid konusunun adı benzersiz olmalıdır.The event grid topic name must be unique because it's represented by a DNS entry.

az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup

Kuyruk depolama oluşturmaCreate Queue storage

Özel konuya abone olmadan önce, olay iletisi için uç noktayı oluşturalım.Before subscribing to the custom topic, let's create the endpoint for the event message. Olayları toplamak için bir Kuyruk depolama oluşturun.You create a Queue storage for collecting the events.

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

Özel konuya abone olmaSubscribe to a custom topic

İzlemek istediğiniz olayları Event Grid söylemek için özel bir konuya abone olursunuz. Aşağıdaki örnek, oluşturduğunuz özel konuya abone olur ve uç nokta için sıra depolama alanının kaynak KIMLIĞINI geçirir.You subscribe to a custom topic to tell Event Grid which events you want to track. The following example subscribes to the custom topic you created, and passes the resource ID of the Queue storage for the endpoint. Azure CLI ile uç nokta olarak Kuyruk depolama kimliğini geçirirsiniz.With Azure CLI, you pass the Queue storage ID as the endpoint. Uç nokta şu biçimdedir:The endpoint is in the format:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-name>/queueservices/default/queues/<queue-name>

Aşağıdaki betik, kuyruk için depolama hesabının kaynak kimliğini alır.The following script gets the resource ID of the storage account for the queue. Kuyruk depolama için kimliği oluşturur ve bir event grid konusuna abone olur.It constructs the ID for the queue storage, and subscribes to an event grid topic. Uç nokta türünü storagequeue olarak ayarlar ve uç nokta için kuyruk kimliğini kullanır.It sets the endpoint type to storagequeue and uses the queue ID for the endpoint.

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

Olay aboneliğini oluşturan hesabın kuyruk depolamada yazma erişimine sahip olması gerekir.The account that creates the event subscription must have write access to the queue storage. Abonelik için bir sona erme tarihi belirlendiğine dikkat edin.Notice that an expiration date is set for the subscription.

Aboneliği REST API kullanarak oluşturursanız depolama hesabının kimliğini ve kuyruğun adını ayrı birer parametre olarak geçirirsiniz.If you use the REST API to create the subscription, you pass the ID of the storage account and the name of the queue as a separate parameter.

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

Özel konunuza olay göndermeSend an event to your custom topic

Event Grid’in iletiyi uç noktanıza nasıl dağıttığını görmek için bir olay tetikleyelim.Let's trigger an event to see how Event Grid distributes the message to your endpoint. İlk olarak özel konunun URL’sini ve anahtarını alalım.First, let's get the URL and key for the custom topic. Burada da <topic_name> yerine özel konunuzun adını yazın.Again, use your custom topic name for <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)

Bu makaleyi kolaylaştırmak için özel konuya göndereceğiniz örnek olay verileri sağlanmıştır.To simplify this article, you use sample event data to send to the custom topic. Normalde olay verilerini bir uygulama veya Azure hizmeti gönderir.Typically, an application or Azure service would send the event data. CURL, HTTP istekleri gönderen bir yardımcı programdır.CURL is a utility that sends HTTP requests. Bu makalede, özel konuya bir olay göndermek için CURL kullanın.In this article, use CURL to send the event to the custom topic. Aşağıdaki örnek, event grid konusuna üç olay gönderir:The following example sends three events to the event grid topic:

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

Portalda Kuyruk depolamaya gidin ve Event Grid’in bu üç olayı kuyruğa gönderdiğine dikkat edin.Navigate to the Queue storage in the portal, and notice that Event Grid sent those three events to the queue.

İletileri gösterme

Kaynakları temizlemeClean up resources

Bu olayla çalışmaya devam etmeyi planlıyorsanız bu makalede oluşturulan kaynakları temizlemeyin.If you plan to continue working with this event, don't clean up the resources created in this article. Aksi takdirde, bu makalede oluşturduğunuz kaynakları silmek için aşağıdaki komutu kullanın.Otherwise, use the following command to delete the resources you created in this article.

az group delete --name gridResourceGroup

Sonraki adımlarNext steps

Artık konu oluşturma ve olay aboneliklerini öğrendiğinize göre, Event Grid’in size nasıl yardımcı olabileceği konusunda daha fazla bilgi edinebilirsiniz:Now that you know how to create topics and event subscriptions, learn more about what Event Grid can help you do: