Azure portalı ve Event Grid ile özel olayları web uç noktasına yönlendirme

Event Grid, birçok farklı Azure hizmeti ve uygulamasında olayları kolayca yönetmenizi sağlayan, tam olarak yönetilen bir hizmettir. Olay odaklı ve sunucusuz uygulamalar oluşturmayı basitleştirir. Hizmete genel bakış için bkz. Event Grid genel bakış.

Bu makalede, aşağıdaki görevleri yapmak için Azure portal kullanırsınız:

  1. Özel bir konu oluşturun.
  2. Özel konuya abone olun.
  3. Olayı tetikleyin.
  4. Sonucu görüntüleyin. Normalde olayları, olay verilerini işleyen ve eylemler gerçekleştiren bir uç noktaya gönderirsiniz. Bununla birlikte, bu makaleyi basitleştirmek için olayları iletilerin toplandığı ve görüntülendiği bir web uygulamasına gönderirsiniz.

Önkoşullar

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

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

Azure aboneliğinizde daha önce Event Grid kullanmadıysanız Event Grid kaynak sağlayıcısına kaydolmanız gerekebilir.

Azure portalında:

  1. Sol taraftaki menüden abonelikler ' i seçin.
  2. Event Grid için kullandığınız aboneliği seçin.
  3. Sol taraftaki menüde, Ayarlar' ın altında kaynak sağlayıcıları' nı seçin.
  4. Microsoft.EventGrid öğesini bulun.
  5. Kayıtlı değilse Kaydol'u seçin.

Kayıt işleminin tamamlanması biraz sürebilir. Durumu güncelleştirmek için Yenile’yi seçin. Durum****Kayıtlı olduğunda, devam etmeye hazırsınız demektir.

Özel konu oluşturma

Event grid konusu, olaylarınızı göndereceğiniz kullanıcı tanımlı bir uç nokta sağlar.

  1. Azure portalda oturum açın.

  2. Konunun arama çubuğunda Event Grid konular yazın ve ardından aşağı açılan listeden Event Grid konular ' ı seçin.

    Event Grid konuları arayın ve seçin

  3. Event Grid konuları sayfasında, araç çubuğunda + Oluştur ' u seçin.

  4. Konu oluştur sayfasında, aşağıdaki adımları izleyin:

    1. Azure aboneliğinizi seçin.

    2. Var olan bir kaynak grubunu seçin veya Yeni oluştur' u seçin ve kaynak grubu için bir ad girin.

    3. Özel konu için benzersiz bir ad sağlayın. Konu adı bir DNS girdisi ile temsil edildiğinden konu adı benzersiz olmalıdır. Görüntüde gösterilen adı kullanmayın. Bunun yerine, kendi adınızı oluşturun; 3-50 karakter arasında olmalıdır ve yalnızca a-z, A-Z, 0-9 ve "-" değerlerini içermelidir.

    4. Olay Kılavuzu konusu için bir konum seçin.

    5. Sayfanın alt kısmındaki gözden geçir + oluştur ' u seçin.

      Konu sayfası oluştur

    6. Konu oluştur sayfasının gözden geçir + oluştur sekmesinde Oluştur' u seçin.

      Ayarları gözden geçirin ve oluşturun

  5. Dağıtım başarılı olduktan sonra, konunun Event Grid konu sayfasına gitmek Için Kaynağa Git ' i seçin. Bu sayfayı açık tutun. Daha sonra hızlı başlangıçta kullanırsınız.

    Event Grid konu giriş sayfasını gösteren ekran görüntüsü

İleti uç noktası oluşturma

Özel konu için bir abonelik oluşturmadan önce, olay iletisi için bir uç nokta oluşturun. Normalde, olay verileri temelinde uç nokta eylemleri gerçekleştirir. Bu hızlı başlangıcı basitleştirmek için, olay iletilerini görüntüleyin bir önceden oluşturulmuş web uygulaması dağıtırsınız. Dağıtılan çözüm bir App Service planı, App Service web uygulaması ve GitHub'dan kaynak kod içerir.

  1. Çözümü aboneliğinize dağıtmak için makale sayfasında Azure 'A dağıt ' ı seçin. Azure portalında parametre değerlerini girin.

    Button to deploy to Azure.

  2. Özel dağıtım sayfasında, aşağıdaki adımları uygulayın:

    1. Kaynak grubu için, depolama hesabı oluştururken oluşturduğunuz kaynak grubunu seçin. Kaynak grubunu silerek öğreticiye tamamladıktan sonra temizlemeniz daha kolay olacaktır.

    2. Site adı için, Web uygulaması için bir ad girin.

    3. Barındırma planı adı için, Web uygulamasını barındırmak üzere kullanılacak App Service planı için bir ad girin.

    4. Gözden geçir ve oluştur’u seçin.

      Özel dağıtım sayfasını gösteren ekran görüntüsü.

  3. Gözden geçir + oluştur sayfasında Oluştur' u seçin.

  4. Dağıtımın tamamlanması birkaç dakika sürebilir. Portalda Uyarılar ' ı (zil simgesi) seçin ve kaynak grubuna git' i seçin.

    Uyarı-kaynak grubuna gidin.

  5. Kaynak grubu sayfasında, kaynak listesinde, oluşturduğunuz Web uygulamasını seçin. Ayrıca, bu listede App Service planı ve depolama hesabı ' nı da görürsünüz.

    Web sitesi seçin.

  6. Web uygulamanızın App Service sayfasında, Web sitesine gitmek için URL 'yi seçin. URL şu biçimde olmalıdır: https://<your-site-name>.azurewebsites.net .

    Web sitesine gidin.

  7. Siteyi görtığınızdan, ancak henüz hiç bir olay gönderilmemiştir.

    Yeni siteyi görüntüleyin.

Özel konuya abone olma

Event Grid’e hangi olayları izlemek istediğinizi ve olayların nereye gönderileceğini bildirmek için bir Event Grid konusuna abone olursunuz.

  1. Şimdi, özel konu başlığı için Event Grid konu sayfasında, araç çubuğunda + olay aboneliği ' ni seçin.

    Olay aboneliği Ekle düğmesi

  2. Olay aboneliği oluştur sayfasında, aşağıdaki adımları izleyin:

    1. Olay aboneliği için bir ad girin.

    2. Uç nokta türü Için Web kancası seçin.

    3. Uç nokta seç ' i seçin.

      Olay abonelik değerlerini sağlama

    4. Web kancası uç noktası için web uygulamanızın URL'sini girin ve ana sayfa URL'sine api/updates ekleyin. Seçimi Onayla'yı seçin.

      Uç nokta URL'si sağlama

    5. Olay aboneliği oluştur sayfasında, Oluştur' u seçin.

  3. Web uygulamanızı yeniden görüntüleyin ve buna bir abonelik doğrulama olayının gönderildiğine dikkat edin. Göz simgesini seçerek olay verilerini genişletin. Uç noktanın olay verilerini almak istediğini doğrulayabilmesi için Event Grid doğrulama olayını gönderir. Web uygulaması aboneliği doğrulamak için kod içerir.

    Abonelik olayını görüntüleme

Konunuza olay gönderme

Şimdi, Event Grid’in iletiyi uç noktanıza nasıl dağıttığını görmek için bir olay tetikleyelim. Özel konunuza bir test olayı göndermek için Azure CLI veya PowerShell kullanın. Normalde olay verilerini bir uygulama veya Azure hizmeti gönderir.

Birinci örnekte, Azure CLI kullanılmaktadır. Özel konunun URL’si ve anahtarı ile örnek olay verilerini alır. <topic name> yerine özel konunuzun adını yazın. Örnek olay verileri oluşturulur. JSON’un data öğesi, olayınızın yüküdür. Bu alana doğru oluşturulmuş herhangi bir JSON gelebilir. Ayrıca, gelişmiş yönlendirme ve filtreleme için konu alanını da kullanabilirsiniz. CURL, HTTP istekleri gönderen bir yardımcı programdır.

Azure CLI

  1. Azure portal Cloud Shell' ni seçin. Cloud Shell Web tarayıcısının alt bölmesinde açılır.

    Cloud Shell simgesini seçin

  2. Cloud Shell penceresinin sol üst köşesindeki Bash ' i seçin.

    Cloud Shell-Bash

  3. Konunun uç noktasını almak için aşağıdaki komutu çalıştırın: komutunu kopyalayıp yapıştırdıktan sonra, komutu çalıştırmadan önce konu adını ve kaynak grubu adını güncelleştirin. Bu konu uç noktasında örnek olayları yayımlayacaksınız.

    endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)
    
  4. Özel konunun anahtarını almak için aşağıdaki komutu çalıştırın: komutunu kopyalayıp yapıştırdıktan sonra, komutu çalıştırmadan önce konu adını ve kaynak grubu adını güncelleştirin. Bu, Event Grid konusunun birincil anahtarıdır. Bu anahtarı Azure portal almak için Event Grid konu sayfasının erişim tuşları sekmesine geçin. Özel bir konuya bir olay göndermek için erişim anahtarınız olması gerekir.

    key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)
    
  5. Aşağıdaki ifadeyi olay tanımıyla kopyalayın ve ENTER tuşuna basın.

    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"} ]'
    
  6. Olayı göndermek için aşağıdaki kıvrımlı komutunu çalıştırın: komutta, aeg-sas-key üst bilgi, daha önce aldığınız erişim anahtarına ayarlanır.

    curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
    

Azure PowerShell

İkinci örnek, benzer adımları yapmak için PowerShell kullanır.

  1. Azure portal Cloud Shell ' i seçin (alternatif olarak öğesine gidin https://shell.azure.com/ ). Cloud Shell Web tarayıcısının alt bölmesinde açılır.

    Cloud Shell simgesini seçin

  2. Cloud Shell, Cloud Shell penceresinin sol üst köşesindeki PowerShell ' i seçin. Azure CLı bölümünde örnek Cloud Shell pencere görüntüsüne bakın.

  3. Aşağıdaki değişkenleri ayarlayın. Her komutu kopyalayıp yapıştırdıktan sonra, komutu çalıştırmadan önce konu adını ve kaynak grubu adını güncelleştirin:

    Kaynak grubu:

    $resourceGroupName = "<resource group name>"
    

    Event Grid konu adı:

    $topicName = "<topic name>"
    
  4. Aşağıdaki komutları çalıştırarak, konusunun uç noktasını ve anahtarlarını alın:

    $endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint
    $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
    
  5. Olayı hazırlayın. Cloud Shell penceresinde deyimleri kopyalayın ve çalıştırın.

    $eventID = Get-Random 99999
    
    #Date format should be SortableDateTimePattern (ISO 8601)
    $eventDate = Get-Date -Format s
    
    #Construct body using Hashtable
    $htbody = @{
        id= $eventID
        eventType="recordInserted"
        subject="myapp/vehicles/motorcycles"
        eventTime= $eventDate   
        data= @{
            make="Ducati"
            model="Monster"
        }
        dataVersion="1.0"
    }
    
    #Use ConvertTo-Json to convert event body from Hashtable to JSON Object
    #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax
    $body = "["+(ConvertTo-Json $htbody)+"]"
    
  6. Olayı göndermek için Invoke-WebRequest cmdlet 'ini kullanın.

    Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
    

Event Grid görüntüleyicisinde doğrulama

Olayı tetiklediniz ve Event Grid, iletiyi abone olurken yapılandırdığınız uç noktaya gönderdi. Az önce gönderdiğiniz olayı görmek için web uygulamanızı görüntüleyin.

Event Grid Görüntüleyici

Kaynakları temizleme

Bu olayla çalışmaya devam etmeyi planlıyorsanız bu makalede oluşturulan kaynakları temizlemeyin. Aksi takdirde, bu makalede oluşturduğunuz kaynakları silin.

  1. Sol menüdeki kaynak grupları ' nı seçin. Sol menüde görmüyorsanız, sol taraftaki menüden tüm hizmetler ' i seçin ve kaynak grupları' nı seçin.

    Kaynak grupları

  2. Kaynak grubu sayfasını başlatmak için kaynak grubunu seçin.

  3. Araç çubuğunda kaynak grubunu sil ' i seçin.

  4. Kaynak grubunun adını girerek silmeyi onaylayın ve Sil' i seçin.

    Görüntüde gördüğünüz diğer kaynak grubu Cloud Shell pencere tarafından oluşturulmuştur ve kullanılır. Daha sonra Cloud Shell penceresini kullanmayı planlamıyorsanız, silin.

Sonraki adımlar

Özel konu ve olay abonelikleri oluşturma işlemini öğrendiğinize göre artık Event Grid’in size nasıl yardımcı olabileceği konusunda daha fazla bilgi edinebilirsiniz:

Farklı programlama dillerini kullanarak Event Grid olayları yayımlama ve olayları kullanma hakkında bilgi edinmek için aşağıdaki örneklere bakın.