Hızlı başlangıç: Azure CLı ve Event Grid ile Azure Event Hubs özel olayları yönlendirmeQuickstart: Route custom events to Azure Event Hubs 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 Event Hubs, desteklenen olay işleyicilerinden biridir.Azure Event Hubs 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. Bir Event Hub’a olaylar gönderirsiniz.You send the events to an event hub.

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.

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. <your-topic-name> değerini özel konunuz için benzersiz bir adla değiştirin.Replace <your-topic-name> with a unique name for your custom topic. DNS girdisi ile temsil edildiğinden özel konu adı benzersiz olmalıdır.The custom topic name must be unique because it's represented by a DNS entry.

topicname=<your-topic-name>
az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup

Olay hub'ı oluşturmaCreate event hub

Ö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 event hub oluşturun.You create an event hub for collecting the events.

namespace=<unique-namespace-name>
hubname=demohub

az eventhubs namespace create --name $namespace --resource-group gridResourceGroup
az eventhubs eventhub create --name $hubname --namespace-name $namespace --resource-group gridResourceGroup

Özel konuya abone olmaSubscribe to a custom topic

İzlemek istediğiniz olayları Event Grid söylemek için bir Event Grid konusuna abone olursunuz. Aşağıdaki örnek, oluşturduğunuz özel konuya abone olur ve uç nokta için Olay Hub 'ının kaynak KIMLIĞINI geçirir.You subscribe to an event grid 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 event hub for the endpoint. Uç nokta şu biçimdedir:The endpoint is in the format:

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.EventHub/namespaces/<namespace-name>/eventhubs/<hub-name>

Aşağıdaki betik, event hub için kaynak kimliğini alır ve bir event grid konusuna abone olur.The following script gets the resource ID for the event hub, and subscribes to an event grid topic. Uç nokta türünü eventhub olarak ayarlar ve uç nokta için event hub kimliğini kullanır.It sets the endpoint type to eventhub and uses the event hub ID for the endpoint.

hubid=$(az eventhubs eventhub show --name $hubname --namespace-name $namespace --resource-group gridResourceGroup --query id --output tsv)

az eventgrid event-subscription create \
  --topic-name $topicname \
  -g gridResourceGroup \
  --name subtoeventhub \
  --endpoint-type eventhub \
  --endpoint $hubid

Olay aboneliğini oluşturan hesabın olay hub'ında yazma erişimine sahip olması gerekir.The account that creates the event subscription must have write access to the event hub.

Ö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.

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)

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 event hub’a gidin ve Event Grid’in bu üç olayı event hub’a gönderdiğine dikkat edin.Navigate to the event hub in the portal, and notice that Event Grid sent those three events to the event hub.

İletileri gösterme

Genellikle, event hub’dan olayları alan bir uygulama oluşturursunuz.Typically, you create an application that retrieves the events from the event hub. Event hub’dan iletileri alan bir uygulama oluşturmak için bkz:To create an application that gets messages from an event hub, see:

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: