Aracılığıyla paylaş


Hızlı Başlangıç: Event Grid ve Azure CLI kullanarak özel olayları bir olay hub'ına yönlendirme

Azure Event Grid , uygulamaları olaylar aracılığıyla tümleştirmek için kullanabileceğiniz yüksek oranda ölçeklenebilir ve sunucusuz bir olay aracısıdır. Event Grid desteklenen olay işleyicilerine olaylar sunar ve Azure Event Hubs bunlardan biridir.

Bu hızlı başlangıçta Azure CLI kullanarak bir Event Grid özel konusu ve bu konu için event hubs aboneliği oluşturacaksınız. Ardından özel konuya örnek olaylar gönderir ve bu olayların bir olay hub'ına teslim edildiklerini doğrularsınız.

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

Kaynak grubu oluşturma

Event Grid konuları Azure kaynaklarıdır ve bir Azure kaynak grubuna yerleştirilmelidir. Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal koleksiyondur.

az group create komutunu kullanarak bir kaynak grubu oluşturun. Aşağıdaki örnek westus2 konumunda gridResourceGroup adlı bir kaynak grubu oluşturur.

Sağ bölmede Azure Cloud Shell'i açmak için Cloud Shell'i Aç'ı seçin. Kopyala düğmesini seçerek komutu kopyalayın, Cloud Shell'e yapıştırın ve ardından Enter tuşunu seçerek komutu çalıştırın.

az group create --name gridResourceGroup --location westus2

Event Grid kaynak sağlayıcısını etkinleştirme

  1. Daha önce Azure aboneliğinizde Event Grid kullanmadıysanız Event Grid kaynak sağlayıcısını kaydetmeniz gerekebilir. Sağlayıcıyı kaydetmek için şu komutu çalıştırın:

    az provider register --namespace Microsoft.EventGrid
    
  2. Kaydın tamamlanması biraz zaman alabilir. Durumu denetlemek için aşağıdaki komutu çalıştırın:

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

    registrationStateRegistered olduğu zaman devam edebilirsiniz.

Özel konu oluşturma

Event Grid konusu, olaylarınızı gönderdiğiniz kullanıcı tanımlı bir uç nokta sağlar. Aşağıdaki örnekte özel konu, kaynak grubunuzda oluşturulur.

<TOPIC NAME> değerini özel konunuz için benzersiz bir adla değiştirin. Bir Etki Alanı Adı Sistemi (DNS) girdisi bunu temsil ettiğinden Event Grid konu adı benzersiz olmalıdır.

  1. Konu için bir ad belirtin:

    topicname="<TOPIC NAME>"
    
  2. Konuyu oluşturmak için aşağıdaki komutu çalıştırın:

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

Olay hub’ı oluşturma

Özel konuya abone olmadan önce olay iletisi için uç noktayı oluşturun. Olayları toplamak için bir event hub oluşturun.

  1. Event Hubs ad alanı için benzersiz bir ad belirtin:

    namespace="<EVENT HUBS NAMESPACE NAME>"
    
  2. Bir Event Hubs ad alanı ve bu ad alanında adlı demohub bir olay hub'ı oluşturmak için aşağıdaki komutları çalıştırın:

    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 olma

Event Grid'e hangi olayları izlemek istediğinizi bildirmek için bir Event Grid konusuna abone olabilirsiniz. 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. Uç nokta şu biçimdedir:

/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventHub/namespaces/<NAMESPACE NAME>/eventhubs/<EVENT HUB NAME>

Aşağıdaki betik olay hub'ına ilişkin kaynak kimliğini alır ve bir Event Grid konusuna abone olur. Uç nokta türünü eventhub olarak ayarlar ve uç nokta için event hub kimliğini kullanır.

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

az eventgrid event-subscription create \
  --source-resource-id $topicid \
  --name subtoeventhub \
  --endpoint-type eventhub \
  --endpoint $hubid

Olay aboneliğini oluşturan hesabın olay hub'ında yazma erişimine sahip olması gerekir.

Özel konunuza olay gönderme

Event Grid'in iletiyi uç noktanıza nasıl dağıttığnı görmek için bir olay tetikleme. İlk olarak, özel konunun URL'sini ve anahtarını alın:

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 makaledeki basitlik açısından, özel konuya göndermek için örnek olay verilerini kullanırsınız. Genellikle bir uygulama veya Azure hizmeti olay verilerini gönderir.

cURL aracı HTTP istekleri gönderir. Bu makalede, olayı özel konuya göndermek için cURL kullanacaksınız. Aşağıdaki örnek Event Grid konusuna üç olay gönderir:

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

Azure portalında, Event Hubs ad alanınızın Genel Bakış sayfasında Event Grid'in bu üç olayı olay hub'ına gönderdiğine dikkat edin. Event Hubs örneğinin Genel Bakış sayfasında demohub aynı grafiği görürsünüz.

Gelen ileti sayısı 3 olan portal sayfasını gösteren ekran görüntüsü.

Genellikle, olay hub'ından olay iletilerini alan bir uygulama oluşturursunuz. Daha fazla bilgi için bkz.

Kaynakları temizleme

Bu olayla çalışmaya devam etmek istiyorsanız, bu makalede oluşturduğunuz kaynakları temizlemeyin. Aksi takdirde, kaynakları silmek için aşağıdaki komutu kullanın:

az group delete --name gridResourceGroup

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:

Event Grid'de çeşitli programlama dillerini kullanarak olay yayımlama ve olay kullanma hakkında bilgi edinmek için aşağıdaki örneklere bakın: