Udostępnij za pośrednictwem


Samouczek: kierowanie komunikatów MQTT w usłudze Azure Event Grid do usługi Azure Functions przy użyciu tematów niestandardowych — Azure Portal

Z tego samouczka dowiesz się, jak kierować komunikaty MQTT odbierane przez przestrzeń nazw usługi Azure Event Grid do funkcji platformy Azure za pośrednictwem tematu niestandardowego usługi Event Grid, wykonując następujące kroki:

Jeśli nie masz subskrypcji platformy Azure, możesz skorzystać z bezpłatnej wersji próbnej.

Tworzenie funkcji platformy Azure przy użyciu wyzwalacza usługi Event Grid

Postępuj zgodnie z instrukcjami z sekcji Tworzenie funkcji platformy Azure przy użyciu programu Visual Studio Code, ale użyj wyzwalacza usługi Azure Event Grid zamiast wyzwalacza HTTP. Powinien zostać wyświetlony kod podobny do poniższego przykładu:

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);
        }
    }
}

Ta funkcja platformy Azure jest używana jako procedura obsługi zdarzeń dla subskrypcji tematu w dalszej części tego samouczka.

Uwaga

  • Utwórz wszystkie zasoby w tym samym regionie.
  • Ten samouczek został przetestowany przy użyciu funkcji platformy Azure, która używa stosu środowiska uruchomieniowego platformy .NET 8.0 (izolowanego).

Tworzenie tematu usługi Event Grid (temat niestandardowy)

Utwórz temat usługi Event Grid. Zobacz Tworzenie tematu niestandardowego przy użyciu portalu. Podczas tworzenia tematu usługi Event Grid na karcie Zaawansowane w polu Schemat zdarzeń wybierz pozycję Schemat zdarzeń w chmurze w wersji 1.0.

Zrzut ekranu przedstawiający stronę Zaawansowane kreatora Tworzenia tematu.

Uwaga

Użyj schematu zdarzeń w chmurze wszędzie w tym samouczku.

Dodawanie subskrypcji do tematu przy użyciu funkcji

W tym kroku utworzysz subskrypcję tematu usługi Event Grid przy użyciu utworzonej wcześniej funkcji platformy Azure.

  1. Na stronie tematu usługi Event Grid wybierz pozycję Subskrypcje na lewym pasku nawigacyjnym.

    Zrzut ekranu przedstawiający stronę Subskrypcje zdarzeń dla tematu.

  2. Na stronie Tworzenie subskrypcji zdarzeń wykonaj następujące kroki:

    1. Wprowadź nazwę subskrypcji zdarzeń.

    2. W polu Schemat zdarzeń wybierz pozycję Schemat zdarzeń w chmurze 1.0.

    3. W polu Typ punktu końcowego wybierz pozycję Azure Functions.

    4. Następnie wybierz pozycję Konfiguruj punkt końcowy.

      Zrzut ekranu przedstawiający stronę Tworzenie subskrypcji zdarzeń.

  3. Na stronie Wybieranie funkcji platformy Azure wykonaj następujące kroki:

    1. W polu Subskrypcja wybierz subskrypcję platformy Azure.

    2. W polu Grupa zasobów wybierz grupę zasobów, która ma funkcję platformy Azure.

    3. W polu Aplikacja funkcji wybierz aplikację usługi Functions, która ma funkcję.

    4. W polu Miejsce wybierz pozycję Produkcja.

    5. W polu Funkcja wybierz funkcję platformy Azure.

    6. Następnie wybierz pozycję Potwierdź zaznaczenie w dolnej części strony.

      Zrzut ekranu przedstawiający stronę Wybieranie funkcji platformy Azure.

  4. Na stronie Tworzenie subskrypcji zdarzeń wybierz pozycję Utwórz.

  5. Na stronie Subskrypcje zdarzeń powinna zostać wyświetlona utworzona subskrypcja.

Tworzenie przestrzeni nazw, klientów, przestrzeni tematów i powiązań uprawnień

Postępuj zgodnie z instrukcjami z przewodnika Szybki start: Publikowanie i subskrybowanie komunikatów MQTT przy użyciu przestrzeni nazw usługi Event Grid w witrynie Azure Portal w celu:

  1. Utwórz przestrzeń nazw usługi Event Grid.
  2. Utwórz dwóch klientów.
  3. Utwórz przestrzeń tematu.
  4. Tworzenie powiązań uprawnień wydawcy i subskrybenta.
  5. Przetestuj przy użyciu aplikacji MQTTX, aby potwierdzić, że klienci mogą wysyłać i odbierać komunikaty.

Włączanie tożsamości zarządzanej dla przestrzeni nazw

W tej sekcji włączysz tożsamość zarządzaną przypisaną przez system dla przestrzeni nazw usługi Event Grid. Następnie przyznaj tożsamości uprawnienie wysyłania do utworzonego wcześniej tematu niestandardowego usługi Event Grid, aby umożliwić kierowanie komunikatu do tematu niestandardowego. W tym celu należy dodać tożsamość zarządzaną do roli Nadawca danych usługi Event Grid w temacie niestandardowym.

  1. Na stronie Przestrzeń nazw usługi Event Grid wybierz pozycję Tożsamość w menu nawigacji po lewej stronie.

    Zrzut ekranu przedstawiający przestrzeń nazw usługi Event Grid z wybraną kartą Tożsamość.

  2. Przejdź do tematu usługi Event Grid dla tematu niestandardowego usługi Event Grid.

  3. Wybierz pozycję Kontrola dostępu na lewym pasku nawigacyjnym.

  4. Na stronie Kontrola dostępu wybierz pozycję Dodaj, a następnie wybierz pozycję Dodaj przypisanie roli.

    Zrzut ekranu przedstawiający stronę Kontrola dostępu.

  5. Na stronie Rola kreatora Dodawanie przypisania roli wybierz rolę Nadawca danych usługi Event Grid, a następnie wybierz pozycję Dalej w dolnej części strony.

    Zrzut ekranu przedstawiający stronę **Rola** kreatora **Dodaj przypisanie roli**.

  6. Na stronie Członkowie kreatora Dodawanie przypisania roli wybierz pozycję Tożsamość zarządzana, a następnie wybierz pozycję Wybierz członków.

    Zrzut ekranu przedstawiający stronę Członkowie kreatora Dodawania przypisania roli.

  7. Na stronie Wybieranie tożsamości zarządzanych wykonaj następujące kroki:

    1. Wybierz swoją subskrypcję platformy Azure.

    2. W polu Tożsamość zarządzana wybierz pozycję Przestrzeń nazw usługi Event Grid.

    3. Wybierz tożsamość zarządzaną o tej samej nazwie co przestrzeń nazw usługi Event Grid.

    4. Wybierz pozycję Wybierz w dolnej części strony.

      Zrzut ekranu przedstawiający stronę Wybieranie tożsamości zarządzanych.

  8. Na stronie Dodawanie przypisania roli wybierz pozycję Dalej w dolnej części strony.

  9. Na stronie Przeglądanie i przypisywanie przejrzyj ustawienia, a następnie wybierz pozycję Przejrzyj i przypisz w dolnej części strony.

Konfigurowanie routingu komunikatów do funkcji platformy Azure za pomocą tematu niestandardowego

W tym kroku skonfigurujesz routing dla przestrzeni nazw usługi Event Grid, tak aby odbierane komunikaty zostały kierowane do utworzonego tematu niestandardowego.

  1. Na stronie Przestrzeń nazw usługi Event Grid wybierz pozycję Routing na lewym pasku nawigacyjnym.

  2. Na stronie Routing wybierz pozycję Włącz routing.

  3. W polu Typ tematu wybierz pozycję Temat niestandardowy.

  4. W obszarze Temat wybierz temat niestandardowy utworzony na potrzeby tego samouczka.

  5. W obszarze Tożsamość zarządzana na potrzeby dostarczania wybierz pozycję Przypisane przez system.

  6. Wybierz pozycję Zastosuj w dolnej części strony.

    Zrzut ekranu przedstawiający stronę Routing dla przestrzeni nazw.

Wysyłanie testowych komunikatów MQTT przy użyciu MQTTX

Wyślij testowe komunikaty MQTT do przestrzeni nazw i upewnij się, że funkcja je odbiera.

Postępuj zgodnie z instrukcjami w artykule Publikowanie i subskrybowanie komunikatów przy użyciu aplikacji MQTTX, aby wysłać kilka komunikatów testowych do przestrzeni nazw usługi Event Grid.

Oto przepływ zdarzeń lub komunikatów:

  1. MQTTX wysyła komunikaty do przestrzeni nazw usługi Event Grid w temacie.

  2. Komunikaty są kierowane do skonfigurowanego tematu niestandardowego.

  3. Komunikaty są przekazywane do subskrypcji zdarzeń, która jest funkcją platformy Azure.

  4. Użyj funkcji rejestrowania, aby sprawdzić, czy funkcja otrzymała zdarzenie.

    Zrzut ekranu przedstawiający stronę Strumienia dziennika dla funkcji platformy Azure.

Następny krok

Zobacz przykłady kodu w tym repozytorium GitHub.