Руководство по маршрутизации сообщений MQTT в Сетка событий Azure Функции Azure с помощью пользовательских разделов — портал Azure

В этом руководстве описано, как маршрутизировать сообщения MQTT, полученные пространством имен Сетка событий Azure в функцию Azure с помощью настраиваемого раздела сетки событий, выполнив следующие действия.

Если у вас нет подписки Azure, можно зарегистрироваться и получить бесплатную пробную версию.

Создание функции Azure с помощью триггера сетки событий

Следуйте инструкциям из статьи "Создание функции Azure с помощью Visual Studio Code", но используйте триггер Сетка событий Azure вместо использования триггера HTTP. Вы должны увидеть код, аналогичный следующему примеру:

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

Эта функция Azure используется в качестве обработчика событий для подписки раздела далее в этом руководстве.

Примечание.

  • Создайте все ресурсы в одном регионе.
  • В этом руководстве была протестирована функция Azure, использующая стек среды выполнения .NET 8.0 (изолированный).

Создание раздела "Сетка событий" (настраиваемый раздел)

Создайте раздел сетки событий. См. статью "Создание пользовательского раздела" с помощью портала. При создании раздела "Сетка событий" на вкладке "Дополнительно" для схемы событий выберите "Облачная схема событий" версии 1.0.

Снимок экрана: страница

Примечание.

Используйте схему облачных событий везде в этом руководстве.

Добавление подписки в раздел с помощью функции

На этом шаге вы создадите подписку на раздел "Сетка событий" с помощью созданной ранее функции Azure.

  1. На странице "Сетка событий" выберите подписки на панели навигации слева.

    Снимок экрана: страница

  2. На странице "Создание подписки на события" выполните следующие действия.

    1. Укажите имя для подписки на событие.

    2. Для схемы событий выберите Cloud Event Schema 1.0.

    3. Для типа конечной точки выберите Функции Azure.

    4. Затем выберите "Настроить конечную точку".

      Снимок экрана: страница

  3. На странице "Выбор функции Azure" сделайте следующее:

    1. Для подписки выберите подписку Azure.

    2. Для группы ресурсов выберите группу ресурсов, которая имеет свою функцию Azure.

    3. Для приложения-функции выберите приложение "Функции", которое имеет функцию.

    4. Для слота выберите "Рабочая среда".

    5. Для функции выберите функцию Azure.

    6. Затем нажмите кнопку "Подтвердить выбор " в нижней части страницы.

      Снимок экрана: страница

  4. Вернитесь на страницу Создать подписку на события и выберите Создать.

  5. На странице "Подписки на события" должна появиться созданная подписка.

Создание пространства имен, клиентов, пространств тем и привязок разрешений

Следуйте инструкциям из краткого руководства. Публикация и подписка на сообщения MQTT с помощью пространства имен Сетки событий с портал Azure:

  1. Создайте пространство имен Сетки событий.
  2. Создайте два клиента.
  3. Создайте пространство тем.
  4. Создание привязок разрешений издателя и подписчика.
  5. Проверьте использование приложения MQTTX, чтобы убедиться, что клиенты могут отправлять и получать сообщения.

Включение управляемого удостоверения для пространства имен

В этом разделе описано, как включить управляемое удостоверение, назначаемое системой, для пространства имен Сетки событий. Затем предоставьте удостоверению разрешение на отправку настраиваемого раздела сетки событий, созданного ранее, чтобы он смог перенаправить сообщение в пользовательский раздел. Для этого добавьте управляемое удостоверение в роль отправителя данных сетки событий в пользовательском разделе.

  1. На странице пространства имен сетки событий выберите удостоверение в меню навигации слева.

    Снимок экрана: пространство имен сетки событий с выбранной вкладкой

  2. Перейдите к разделу сетки событий для пользовательского раздела сетки событий.

  3. Выберите элемент управления доступом на левой панели навигации.

  4. На странице управления доступом нажмите кнопку "Добавить", а затем выберите "Добавить назначение ролей".

    Снимок экрана: страница управления доступом.

  5. На странице "Роль" мастера добавления назначения ролей выберите роль "Отправитель данных сетки событий" и нажмите кнопку "Далее" в нижней части страницы.

    Снимок экрана: страница **Роль** мастера **Добавление назначения ролей**.

  6. На странице "Участники" мастера добавления назначения ролей выберите управляемое удостоверение и выберите "Выбрать участников".

    Снимок экрана: страница

  7. На странице "Выбор управляемых удостоверений" выполните следующие действия.

    1. Выберите свою подписку Azure.

    2. Для управляемого удостоверения выберите пространство имен сетки событий.

    3. Выберите управляемое удостоверение, которое имеет то же имя, что и пространство имен Сетки событий.

    4. Выберите в нижней части страницы.

      Снимок экрана: страница выбора управляемых удостоверений.

  8. На странице "Добавление назначения ролей" нажмите кнопку "Далее" в нижней части страницы.

  9. На странице "Рецензирование и назначение" проверьте параметры, а затем нажмите кнопку "Рецензирование" и "Назначить" в нижней части страницы.

Настройка маршрутизации сообщений в функцию Azure с помощью пользовательского раздела

На этом шаге вы настроите маршрутизацию для пространства имен Сетки событий, чтобы сообщения, полученные им, перенаправляются в созданный пользовательский раздел.

  1. На странице пространства имен сетки событий выберите "Маршрутизация" на левой панели навигации.

  2. На странице "Маршрутизация" выберите "Включить маршрутизацию".

  3. В разделе "Тип раздела" выберите "Настраиваемый раздел".

  4. Для раздела выберите пользовательский раздел, созданный для этого руководства.

  5. Для управляемого удостоверения для доставки выберите "Назначенная система".

  6. Выберите "Применить" в нижней части страницы.

    Снимок экрана: страница маршрутизации для пространства имен.

Отправка тестовых сообщений MQTT с помощью MQTTX

Отправьте тестовые сообщения MQTT в пространство имен и убедитесь, что функция получает их.

Следуйте инструкциям из публикации, подписывайтесь на сообщения с помощью статьи приложения MQTTX, чтобы отправить несколько тестовых сообщений в пространство имен Сетки событий.

Ниже приведен поток событий или сообщений:

  1. MQTTX отправляет сообщения в пространство тем пространства имен Сетки событий.

  2. Сообщения направляются в настраиваемый раздел, настроенный вами.

  3. Сообщения перенаправляются в подписку на события, которая является функцией Azure.

  4. Используйте функцию ведения журнала, чтобы убедиться, что функция получила событие.

    Снимок экрана: страница потока журнала для функции Azure.

Следующий шаг

См. примеры кода в этом репозитории GitHub.