Поделиться через


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

Узнайте, как отвечать на события служебной шины Azure, получаемые через Сетку событий Azure с помощью Функций Azure и Azure Logic Apps.

В этом руководстве описано следующее:

  • Создание пространства имен служебной шины
  • Подготовка примера приложения для отправки сообщений
  • Отправка сообщений в раздел служебной шины
  • Получение сообщений с помощью Logic Apps
  • Настройка проверочной функции в Azure
  • Подключение функции и пространства имен с помощью службы "Сетка событий"
  • Получение сообщений с помощью службы "Функции Azure"

Необходимые компоненты

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

Создание пространства имен служебной шины

Следуйте инструкциям в этом руководстве. Краткое руководство. Использование портал Azure для создания раздела и подписок служебная шина в разделе для выполнения следующих задач:

  • Создадите пространство имен служебной шины уровня Премиум.
  • Получите строку подключения.
  • Создадите раздел служебной шины.
  • Создание подписки на раздел. В этом учебнике вам понадобится только одна подписка, поэтому создавать подписки S2 и S3 не нужно.

Отправка сообщений в раздел служебной шины

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

  1. Клонируйте репозиторий GitHub azure-service-bus или загрузите ZIP-файл и извлеките из него файлы.

  2. В Visual Studio перейдите к папке \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2 и откройте файл SBEventGridIntegration.sln.

  3. В окне "Обозреватель решений" разверните проект MessageSender и выберите Program.cs.

  4. Замените <SERVICE BUS NAMESPACE - CONNECTION STRING> строкой подключения к пространству имен служебной шины и <TOPIC NAME> именем раздела.

    const string ServiceBusConnectionString = "<SERVICE BUS NAMESPACE - CONNECTION STRING>";
    const string TopicName = "<TOPIC NAME>";
    
  5. Создайте и запустите программу для отправки 5 тестовых сообщений (const int numberOfMessages = 5;) в раздел служебной шины.

    Выходные данные приложения в консоли

Дополнительные требования

Установите Visual Studio 2022 и включите рабочую нагрузку разработки Azure. Эта рабочая нагрузка включает инструменты Функций Azure, требуемые для создания, сборки и развертывания проектов Функций Azure в Visual Studio.

Развертывание приложения-функции

Примечание.

Дополнительные сведения см. в статье Разработка Функций Azure с помощью Visual Studio.

  1. Откройте файл ReceiveMessagesOnEvent.cs в проекте FunctionApp1 решения SBEventGridIntegration.sln.

  2. Замените <SERVICE BUS NAMESPACE - CONNECTION STRING> строкой подключения к пространству имен Служебной шины. Эта строка должна совпадать с той, которая использовалась в файле Program.cs проекта MessageSender в том же решении.

  3. Щелкните правой кнопкой мыши FunctionApp1 и выберите Опубликовать.

  4. На странице Публикация выберите Запустить. Эти шаги могут отличаться от того, что вы видите, но процесс публикации должен быть похож.

  5. В мастере публикации на странице Целевой объект выберите Azure для параметра Целевой объект.

  6. На странице Указанный целевой объект выберите Приложение-функция Azure (Windows).

  7. На странице экземпляра "Функции" выберите "Создать".

    Снимок экрана: кнопка

  8. На странице Приложение-функция (Windows) выполните следующие действия:

    1. Введите имя приложения-функции.
    2. Выберите подписку Azure.
    3. Выберите существующую группу ресурсов или создайте новую. Для работы с этим руководством выберите группу ресурсов с пространством имен Служебной шины.
    4. Выберите типа плана для Службы приложений.
    5. Выберите расположение. Выберите то же расположение, что и у пространства имен Служебной шины.
    6. Выберите существующую службу хранилища Azure или создайте новую учетную запись хранения, которая будет использоваться приложением Функций.
    7. Для Application Insights выберите существующий экземпляр Application Insights, чтобы связать ее с функцией Azure или создать ее.
    8. Щелкните Создать, чтобы создать приложение Функций.
  9. Вернитесь на страницу Экземпляр Функций мастера публикации и щелкните Готово.

  10. На странице Публикация в Visual Studio выберите Опубликовать, чтобы опубликовать приложение Функций в Azure.

  11. В окне Вывод просмотрите сообщения, связанные со сборкой и публикацией, и убедитесь, что все в порядке.

    Если публикация завершается ошибкой проверки подлинности, убедитесь, что для приложения Функции Azure включен параметр публикации SCM Basic Auth.

    Снимок экрана: включен параметр публикации базовой проверки подлинности SCM.

  12. Теперь на странице публикации в разделе "Размещение" выберите ... (многоточие) и нажмите кнопку "Открыть" в портал Azure.

    Снимок экрана: страница публикации в Visual Studio.

  13. В портал Azure на странице приложения-функции выберите EventGridTriggerFunction из списка. Рекомендуется использовать триггер Сетки событий с Функциями Azure, так как его использование связано с несколькими преимуществами по сравнению с использованием триггера HTTP. Дополнительные сведения см. в статье Использование функции Azure как обработчика событий Сетки событий.

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

  14. На странице "Функция" для EventGridTriggerFunction перейдите на вкладку "Вызовы".

    Снимок экрана: страница вызова функции триггера сетки событий.

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

Подключение функции и пространства имен служебная шина через сетку событий

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

Чтобы создать подписку на Сетку событий Azure, сделайте следующее:

  1. В портал Azure перейдите к пространству имен служебная шина, а затем в левой области выберите "События". На правой панели откроется окно пространства имен с двумя подписками на Сетку событий.

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

  2. Выберите + Подписка на события на панели инструментов.

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

    1. Укажите имя подписки.

    2. Введите имясистемного раздела. Системные разделы — это разделы, созданные для ресурсов Azure, таких как учетная запись хранения Azure и служебная шина Azure. См. общие сведения о системных разделах.

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

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

    4. На странице Выбор функции Azure выберите подписку, группу ресурсов, приложение-функцию, слот и функцию, а затем щелкните Подтвердить выбор.

      Снимок экрана: выбор конечной точки функции Azure.

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

      1. Выберите Включить фильтрацию тем

      2. Введите имя подписки на созданный ранее раздел служебная шина. На следующем снимке экрана указано mysubимя подписки.

      3. Выберите кнопку Создать.

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

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

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

Мониторинг приложения-функции

Сообщения, отправленные ранее в раздел Служебной шины, перенаправляются в подписку (S1). Сетка событий перенаправляет сообщения в подписке в функцию Azure. Теперь вы подтвердите, что функция была вызвана, и просмотрите записанные информационные сообщения.

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

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

  2. Выберите вызов в списке, чтобы просмотреть подробные сведения.

    Снимок экрана: сведения о вызове функции.

    Вы также можете использовать вкладку "Журналы" для просмотра сведений о ведении журнала по мере отправки сообщений. Может быть некоторая задержка, поэтому дайте ему несколько минут, чтобы просмотреть записанные сообщения.

    Снимок экрана: вкладка

Устранение неполадок

Если после ожидания и обновления вызовы не отображаются, выполните следующие действия:

  1. Убедитесь, что сообщения отправлены в раздел Служебной шины. Взгляните на счетчик входящих сообщений на странице Раздел служебной шины. Так как в нашем примере приложение MessageSender запущено дважды, отображаются 10 сообщений (по 5 для каждого запуска).

    Снимок экрана: страница раздела служебная шина — входящие сообщения.

  2. Убедитесь, что на странице "Подписка служебной шины" нет активных сообщений. Если на этой странице нет событий, убедитесь, что на странице Service Bus Subscription (Подписка служебной шины) не отображено число активных сообщений. Если там отображается число выше нуля, это значит, что сообщения в подписке по каким-то причинам не пересылаются в функцию обработчика (обработчик подписки на события). Убедитесь, что вы правильно настроили подписку на события.

    Снимок экрана: активное число сообщений в подписке служебная шина.

  3. Кроме того, на странице События в пространстве имен Cлужебной шины можно просмотреть доставленные события.

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

  4. Вы также можете заметить, что события доставляются на страницу Подписка на событие. Чтобы перейти на эту страницу, выберите подписку на события на странице События.

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

  • Дополнительные сведения о службе "Сетка событий" Azure см. здесь.
  • Дополнительные сведения о решении "Функции Azure" см. здесь.
  • Дополнительные сведения о служебной шине Azure.