Hızlı başlangıç: Azure portal ve Event Grid özel olayları Web uç noktasına yönlendirmeQuickstart: Route custom events to web endpoint with the Azure portal and Event Grid

Azure Event Grid, bulut için bir olay oluşturma hizmetidir.Azure Event Grid is an eventing service for the cloud. Bu makalede, Azure portalını kullanarak özel bir konu oluşturur, bu özel konuya abone olur ve sonucu görüntülemek için olayı tetiklersiniz.In this article, you use the Azure portal to create a custom topic, subscribe to the custom topic, and trigger the event to view the result. Normalde olayları, olay verilerini işleyen ve eylemler gerçekleştiren bir uç noktaya gönderirsiniz.Typically, you send events to an endpoint that processes the event data and takes actions. Bununla birlikte, bu makaleyi basitleştirmek için olayları iletilerin toplandığı ve görüntülendiği bir web uygulamasına gönderirsiniz.However, to simplify this article, you send the events to a web app that collects and displays the messages.

İşiniz bittiğinde, olay verilerinin web uygulamasına gönderildiğini görürsünüz.When you're finished, you see that the event data has been sent to the web app.

Sonuçları görüntüleme

Not

Bu makale yeni Azure PowerShell Az modülünü kullanacak şekilde güncelleştirilmiştir.This article has been updated to use the new Azure PowerShell Az module. En azından Aralık 2020'ye kadar hata düzeltmeleri almaya devam edecek olan AzureRM modülünü de kullanmaya devam edebilirsiniz.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Yeni Az modülüyle AzureRM'nin uyumluluğu hakkında daha fazla bilgi edinmek için bkz. Yeni Azure PowerShell Az modülüne giriş.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az modülü yükleme yönergeleri için bkz. Azure PowerShell'i yükleme.For Az module installation instructions, see Install Azure PowerShell.

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.

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.

Azure portalında:In the Azure portal:

  1. Abonelikler'i seçin.Select Subscriptions.
  2. Event Grid için kullandığınız aboneliği seçin.Select the subscription you're using for Event Grid.
  3. Ayarlar'ın altında Kaynak sağlayıcıları'nı seçin.Under Settings, select Resource providers.
  4. Microsoft.EventGrid öğesini bulun.Find Microsoft.EventGrid.
  5. Kayıtlı değilse Kaydol'u seçin.If not registered, select Register.

Kayıt işleminin tamamlanması biraz sürebilir.It may take a moment for the registration to finish. Durumu güncelleştirmek için Yenile’yi seçin.Select Refresh to update the status. Durum Kayıtlı olduğunda, devam etmeye hazırsınız demektir.When Status 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.

  1. Azure portalda oturum açın.Sign in to Azure portal.

  2. Sol gezinti menüsünde tüm hizmetler ' i seçin, Event Gridarayın ve Event Grid konuları' nı seçin.Select All services on the left navigational menu, search for Event Grid, and select Event Grid Topics.

    Event Grid konuları seçin

  3. Event Grid konuları sayfasında, araç çubuğunda + Ekle ' yi seçin.On the Event Grid Topics page, select + Add on the toolbar.

    Event Grid Konu Ekle düğmesi

  4. Konu oluştur sayfasında, aşağıdaki adımları izleyin:On the Create Topic page, follow these steps:

    1. Özel konu için benzersiz bir ad sağlayın.Provide a unique name for the custom topic. Konu adı bir DNS girdisi ile temsil edildiğinden konu adı benzersiz olmalıdır.The topic name must be unique because it's represented by a DNS entry. Görüntüde gösterilen adı kullanmayın.Don't use the name shown in the image. 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.Instead, create your own name - it must be between 3-50 characters and contain only values a-z, A-Z, 0-9, and "-".

    2. Azure aboneliğinizi seçin.Select your Azure subscription.

    3. Var olan bir kaynak grubunu seçin veya Yeni oluştur' u seçin ve kaynak grubuiçin bir ad girin.Select an existing resource group or select Create new, and enter a name for the resource group.

    4. Olay Kılavuzu konusu için bir konum seçin.Select a location for the event grid topic.

    5. Olay şeması alanı için varsayılan değer Event Grid şemayı tut.Keep the default value Event Grid Schema for the Event Schema field.

      Konu sayfası oluştur

    6. Oluştur'u seçin.Select Create.

  5. Özel konu oluşturulduktan sonra başarılı bildirim görürsünüz.After the custom topic has been created, you see the successful notification. Kaynak grubuna git' i seçin.Select Go to resource group.

    Başarılı durum bildirimini görüntüleme

  6. Kaynak grubu sayfasında, olay Kılavuzu konusunu seçin.On the Resource Group page, select the event grid topic.

    Olay Kılavuzu konu kaynağını seçin

  7. Olay kılavuzunuzun Event Grid konu sayfasını görürsünüz.You see the Event Grid Topic page for your event grid. Bu sayfayı açık tutun.Keep this page open. Daha sonra hızlı başlangıçta kullanırsınız.You use it later in the quickstart.

    Event Grid konu giriş sayfası

İleti uç noktası oluşturmaCreate a message endpoint

Özel konu için bir abonelik oluşturmadan önce, olay iletisi için bir uç nokta oluşturun.Before you create a subscription for the custom topic, create an endpoint for the event message. Normalde, olay verileri temelinde uç nokta eylemleri gerçekleştirir.Typically, the endpoint takes actions based on the event data. 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.To simplify this quickstart, you deploy a pre-built web app that displays the event messages. Dağıtılan çözüm bir App Service planı, App Service web uygulaması ve GitHub'dan kaynak kod içerir.The deployed solution includes an App Service plan, an App Service web app, and source code from GitHub.

  1. Çözümü aboneliğinize dağıtmak için makale sayfasında Azure 'A dağıt ' ı seçin.In the article page, select Deploy to Azure to deploy the solution to your subscription. Azure portalında parametre değerlerini girin.In the Azure portal, provide values for the parameters.

  2. Dağıtımın tamamlanması birkaç dakika sürebilir.The deployment may take a few minutes to complete. Dağıtım başarıyla gerçekleştirildikten sonra, web uygulamanızı görüntüleyip çalıştığından emin olun.After the deployment has succeeded, view your web app to make sure it's running. Web tarayıcısında şu adrese gidin: https://<your-site-name>.azurewebsites.netIn a web browser, navigate to: https://<your-site-name>.azurewebsites.net

  3. Siteyi görürsünüz ancak henüz yayımlanmış olay yoktur.You see the site but no events have been posted to it yet.

    Yeni siteyi görüntüleme

Özel konuya abone olmaSubscribe to custom topic

Event Grid’e hangi olayları izlemek istediğinizi ve olayların nereye gönderileceğini bildirmek için bir Event Grid konusuna abone olursunuz.You subscribe to an event grid topic to tell Event Grid which events you want to track, and where to send the events.

  1. Şimdi, özel konu başlığı için Event Grid konu sayfasında, araç çubuğunda + olay aboneliği ' ni seçin.Now, on the Event Grid Topic page for your custom topic, select + Event Subscription on the toolbar.

    Olay aboneliği ekleyin

  2. Olay aboneliği oluştur sayfasında, aşağıdaki adımları izleyin:On the Create Event Subscription page, follow these steps:

    1. Olay aboneliği için bir ad girin.Enter a name for the event subscription.

    2. Uç nokta türüIçin Web kancası seçin.Select Web Hook for the Endpoint type.

    3. Uç nokta seç ' iseçin.Choose Select an endpoint.

      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.For the web hook endpoint, provide the URL of your web app and add api/updates to the home page URL. Seçimi Onayla'yı seçin.Select Confirm Selection.

      Uç nokta URL'si sağlama

    5. Olay aboneliği oluştur sayfasında, Oluştur' u seçin.Back on the Create Event Subscription page, select Create.

  3. Web uygulamanızı yeniden görüntüleyin ve buna bir abonelik doğrulama olayının gönderildiğine dikkat edin.View your web app again, and notice that a subscription validation event has been sent to it. Göz simgesini seçerek olay verilerini genişletin.Select the eye icon to expand the event data. Uç noktanın olay verilerini almak istediğini doğrulayabilmesi için Event Grid doğrulama olayını gönderir.Event Grid sends the validation event so the endpoint can verify that it wants to receive event data. Web uygulaması aboneliği doğrulamak için kod içerir.The web app includes code to validate the subscription.

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

Konunuza olay göndermeSend an event to your topic

Şimdi, Event Grid’in iletiyi uç noktanıza nasıl dağıttığını görmek için bir olay tetikleyelim.Now, let's trigger an event to see how Event Grid distributes the message to your endpoint. Özel konunuza bir test olayı göndermek için Azure CLI veya PowerShell kullanın.Use either Azure CLI or PowerShell to send a test event to your custom topic. Normalde olay verilerini bir uygulama veya Azure hizmeti gönderir.Typically, an application or Azure service would send the event data.

Birinci örnekte, Azure CLI kullanılmaktadır.The first example uses Azure CLI. Özel konunun URL’si ve anahtarı ile örnek olay verilerini alır.It gets the URL and key for the custom topic, and sample event data. <topic name> yerine özel konunuzun adını yazın.Use your custom topic name for <topic name>. Örnek olay verileri oluşturulur.It creates sample event data. JSON’un data öğesi, olayınızın yüküdür.The data element of the JSON is the payload of your event. Bu alana doğru oluşturulmuş herhangi bir JSON gelebilir.Any well-formed JSON can go in this field. Ayrıca, gelişmiş yönlendirme ve filtreleme için konu alanını da kullanabilirsiniz.You can also use the subject field for advanced routing and filtering. CURL, HTTP istekleri gönderen bir yardımcı programdır.CURL is a utility that sends HTTP requests.

Azure CLIAzure CLI

  1. Azure portal Cloud Shell' ni seçin.In the Azure portal, select Cloud Shell. Cloud Shell penceresinin sol üst köşesindeki Bash ' i seçin.Select Bash in the top-left corner of the Cloud Shell window.

    Cloud Shell-Bash

  2. 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.Run the following command to get the endpoint for the topic: After you copy and paste the command, update the topic name and resource group name before you run the command.

    endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)
    
  3. Ö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.Run the following command to get the key for the custom topic: After you copy and paste the command, update the topic name and resource group name before you run the command.

    key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)
    
  4. Aşağıdaki ifadeyi olay tanımıyla kopyalayın ve ENTERtuşuna basın.Copy the following statement with the event definition, and press ENTER.

    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"} ]'
    
  5. Olayı göndermek için aşağıdaki kıvrımlı komutunu çalıştırın:Run the following Curl command to post the event:

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

Azure PowerShellAzure PowerShell

İkinci örnek, benzer adımları gerçekleştirmek için PowerShell’i kullanır.The second example uses PowerShell to perform similar steps.

  1. Azure portal Cloud Shell ' i seçin (alternatif olarak https://shell.azure.com/)gidin.In the Azure portal, select Cloud Shell (alternatively go to https://shell.azure.com/). Cloud Shell penceresinin sol üst köşesindeki PowerShell ' i seçin.Select PowerShell in the top-left corner of the Cloud Shell window. Azure CLı bölümünde örnek Cloud Shell pencere görüntüsüne bakın.See the sample Cloud Shell window image in the Azure CLI section.

  2. Aşağıdaki değişkenleri ayarlayın.Set the following variables. 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:After you copy and paste each command, update the topic name and resource group name before you run the command:

    $resourceGroupName = <resource group name>
    $topicName = <topic name>
    
  3. Aşağıdaki komutları çalıştırarak, konusunun uç noktasını ve anahtarlarını alın:Run the following commands to get the endpoint and the keys for the topic:

    $endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint
    $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
    
  4. Olayı hazırlayın.Prepare the event. Cloud Shell penceresinde deyimleri kopyalayın ve çalıştırın.Copy and run the statements in the Cloud Shell window.

    $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)+"]"
    
  5. Olayı göndermek için Invoke-WebRequest cmdlet 'ini kullanın.Use the Invoke-WebRequest cmdlet to send the event.

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

Event Grid görüntüleyicisinde doğrulamaVerify in the Event Grid Viewer

Olayı tetiklediniz ve Event Grid, iletiyi abone olurken yapılandırdığınız uç noktaya gönderdi.You've triggered the event, and Event Grid sent the message to the endpoint you configured when subscribing. Az önce gönderdiğiniz olayı görmek için web uygulamanızı görüntüleyin.View your web app to see the event you just sent.

{
  "id": "974",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2019-03-28T01:11:59+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "topic": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myegridrg/providers/Microsoft.EventGrid/topics/myegridtopic"
}

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ı silin.Otherwise, delete the resources you created in this article.

  1. Sol menüdeki kaynak grupları ' nı seçin.Select Resource Groups on the left menu. Sol menüde görmüyorsanız, sol taraftaki menüden tüm hizmetler ' i seçin ve kaynak grupları' nı seçin.If you don't see it on the left menu, select All Services on the left menu, and select Resource Groups.

  2. Kaynak grubu sayfasını başlatmak için kaynak grubunu seçin.Select the resource group to launch the Resource Group page.

  3. Araç çubuğunda kaynak grubunu sil ' i seçin.Select Delete resource group on the toolbar.

  4. Kaynak grubunun adını girerek silmeyi onaylayın ve Sil' i seçin.Confirm deletion by entering the name of the resource group, and select Delete.

    Kaynak grupları

    Görüntüde gördüğünüz diğer kaynak grubu Cloud Shell pencere tarafından oluşturulmuştur ve kullanılır.The other resource group you see in the image was created and used by the Cloud Shell window. Daha sonra Cloud Shell penceresini kullanmayı planlamıyorsanız, silin.Delete it if you don't plan to use the Cloud Shell window later.

Sonraki adımlarNext steps

Ö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:Now that you know how to create custom topics and event subscriptions, learn more about what Event Grid can help you do: