Öğretici: Azure Event Grid'deki MQTT iletilerini özel konuları kullanarak Azure İşlevleri yönlendirme - Azure portalı

Bu öğreticide, aşağıdaki adımları izleyerek Bir Azure Event Grid ad alanı tarafından alınan MQTT iletilerini Event Grid özel konusu aracılığıyla bir Azure işlevine yönlendirmeyi öğreneceksiniz:

Azure aboneliğiniz yoksa ücretsiz denemeye kaydolabilirsiniz.

Event Grid tetikleyicisi kullanarak Azure işlevi oluşturma

Visual Studio Code kullanarak Azure işlevi oluşturma bölümündeki yönergeleri izleyin, ancak HTTP Tetikleyicisi yerine Azure Event Grid Tetikleyicisi'ni kullanın. Aşağıdaki örneğe benzer bir kod görmeniz gerekir:

using System;
using Azure.Messaging;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;

namespace Company.Function
{
    public class MyEventGridTriggerFunc
    {
        private readonly ILogger<MyEventGridTriggerFunc> _logger;

        public MyEventGridTriggerFunc(ILogger<MyEventGridTriggerFunc> logger)
        {
            _logger = logger;
        }

        [Function(nameof(MyEventGridTriggerFunc))]
        public void Run([EventGridTrigger] CloudEvent cloudEvent)
        {
            _logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject);
        }
    }
}

Bu öğreticinin ilerleyen bölümlerinde bu Azure işlevini bir konunun aboneliği için olay işleyicisi olarak kullanacaksınız.

Not

  • Aynı bölgede tüm kaynakları oluşturun.
  • Bu öğretici, .NET 8.0 (yalıtılmış) çalışma zamanı yığını kullanan bir Azure işleviyle test edilmiştir.

Event Grid konusu oluşturma (özel konu)

Event Grid konusu oluşturun. Bkz. Portalı kullanarak özel konu oluşturma. Event Grid konusunu oluşturduğunuzda, Gelişmiş sekmesindeki Olay Şeması için Bulut Olay Şeması v1.0'ı seçin.

Konu Oluştur sihirbazının Gelişmiş sayfasını gösteren ekran görüntüsü.

Not

Bu öğreticide bulut olay şemasını her yerde kullanın.

işlevini kullanarak konuya abonelik ekleme

Bu adımda, daha önce oluşturduğunuz Azure işlevini kullanarak Event Grid konusuna bir abonelik oluşturursunuz.

  1. Event Grid konu başlığı sayfasında, sol gezinti çubuğunda Abonelikler'i seçin.

    Bir konunun Olay Abonelikleri sayfasını gösteren ekran görüntüsü.

  2. Olay aboneliği oluştur sayfasında şu adımları uygulayın:

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

    2. Olay şeması için Bulut Olay Şeması 1.0'ı seçin.

    3. Uç nokta türü için Azure İşlevleri'ı seçin.

    4. Ardından Uç nokta yapılandır'ı seçin.

      Olay aboneliği oluştur sayfasını gösteren ekran görüntüsü.

  3. Azure işlevini seçin sayfasında şu adımları uygulayın:

    1. Abonelik için Azure aboneliğinizi seçin.

    2. Kaynak grubu için Azure işlevinizin yer aldığı kaynak grubunu seçin.

    3. İşlev uygulaması için işlevi olan İşlevler uygulamasını seçin.

    4. Yuva için Üretim'i seçin.

    5. İşlev için Azure işlevinizi seçin.

    6. Ardından sayfanın alt kısmındaki Seçimi onayla'yı seçin.

      Azure işlev seçin sayfasını gösteren ekran görüntüsü.

  4. Olay Aboneliği Oluştur sayfasında Oluştur'u seçin.

  5. Olay Abonelikleri sayfasında, oluşturduğunuz aboneliği görmeniz gerekir.

Ad alanı, istemciler, konu alanları ve izin bağlamaları oluşturma

Hızlı Başlangıç: Azure portalı ile Event Grid ad alanını kullanarak MQTT iletilerini yayımlama ve abone olma yönergelerini izleyin:

  1. Event Grid ad alanı oluşturun.
  2. İki istemci oluşturun.
  3. Konu alanı oluşturun.
  4. Yayımcı ve abone izin bağlamaları oluşturun.
  5. İstemcilerin ileti gönderip alabildiğini onaylamak için MQTTX uygulamasını kullanarak test edin.

Ad alanı için yönetilen kimliği etkinleştirme

Bu bölümde, Event Grid ad alanı için sistem tarafından atanan yönetilen kimliği etkinleştirebilirsiniz. Ardından, kimliğe daha önce oluşturduğunuz Event Grid özel konusuna gönderme izni verin, böylece iletiyi özel konuya yönlendirebilir. Bunu yapmak için yönetilen kimliği özel konu başlığındaki Event Grid Veri Göndereni rolüne eklersiniz.

  1. Event Grid Ad Alanı sayfasında, sol gezinti menüsünde Kimlik'i seçin.

    Kimlik sekmesinin seçili olduğu Event Grid Ad Alanı'nı gösteren ekran görüntüsü.

  2. Event Grid özel konunuzun Event Grid Konusuna gidin.

  3. Sol gezinti çubuğunda Erişim denetimi'ni seçin.

  4. Erişim denetimi sayfasında Ekle'yi ve ardından Rol ataması ekle'yi seçin.

    Erişim denetim sayfasını gösteren ekran görüntüsü.

  5. Rol ataması ekleme sihirbazının Rol sayfasında Event Grid Veri Göndereni rolü'ne tıklayın ve sayfanın alt kısmındaki İleri'ye tıklayın.

    **Rol ataması ekle** sihirbazının **Rol** sayfasını gösteren ekran görüntüsü.

  6. Rol ataması ekleme sihirbazının Üyeler sayfasında Yönetilen kimlik'i ve ardından Üye seç'i seçin.

    Rol ataması ekleme sihirbazının Üyeler sayfasını gösteren ekran görüntüsü.

  7. Yönetilen kimlikleri seçin sayfasında şu adımları uygulayın:

    1. Azure aboneliğinizi seçin.

    2. Yönetilen kimlik için Event Grid Ad Alanı'yı seçin.

    3. Event Grid ad alanıyla aynı ada sahip yönetilen kimliği seçin.

    4. Sayfanın alt kısmındaki Seç'i seçin.

      Yönetilen kimlikleri seçin sayfasını gösteren ekran görüntüsü.

  8. Rol ataması ekle sayfasında, sayfanın alt kısmındaki İleri'yi seçin.

  9. Gözden geçir ve ata sayfasında ayarları gözden geçirin ve ardından sayfanın alt kısmındaki Gözden geçir + ata'yı seçin.

Özel konu başlığı aracılığıyla iletileri Azure işlevine yönlendirmeyi yapılandırma

Bu adımda, Event Grid ad alanı için yönlendirmeyi yapılandırarak aldığı iletilerin oluşturduğunuz özel konuya yönlendirilmesi sağlanır.

  1. Event Grid Ad Alanı sayfasında, sol gezinti çubuğunda Yönlendirme'yi seçin.

  2. Yönlendirme sayfasında Yönlendirmeyi etkinleştir'i seçin.

  3. Konu türü için Özel konu'ya tıklayın.

  4. Konu başlığı için bu öğretici için oluşturduğunuz özel konuyu seçin.

  5. Teslim için Yönetilen kimlik için Sistem Atanan'ı seçin.

  6. Sayfanın alt kısmındaki Uygula'yı seçin.

    Bir ad alanının Yönlendirme sayfasını gösteren ekran görüntüsü.

MQTTX kullanarak test MQTT iletileri gönderme

Test MQTT iletilerini ad alanına gönderin ve işlevin bunları aldığını onaylayın.

Event Grid ad alanına birkaç test iletisi göndermek için MQTTX uygulamasını kullanarak iletileri yayımlama, abone olma makalesindeki yönergeleri izleyin.

Olay veya iletilerin akışı aşağıdadır:

  1. MQTTX, Event Grid ad alanının konu alanına ileti gönderir.

  2. İletiler, yapılandırdığınız özel konuya yönlendirilir.

  3. İletiler, Azure işlevi olan olay aboneliğine iletilir.

  4. İşlevin olayı aldığını doğrulamak için günlüğe kaydetme özelliğini kullanın.

    Azure işlevinin Günlük akışı sayfasını gösteren ekran görüntüsü.

Sonraki adım

Bu GitHub deposundaki kod örneklerine bakın.