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


Доставка событий в веб-перехватчики с помощью разделов пространства имен — портал Azure (предварительная версия)

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

Примечание.

Сетка событий Azure пространства имен в настоящее время поддерживает маркер подписанных URL-адресов (SAS) и проверку подлинности ключей доступа.

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

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

Пространство имен Сетки событий предоставляет определяемую пользователем конечную точку, в которую вы публикуете события. В следующем примере создается пространство имен в группе ресурсов с помощью Bash в Azure Cloud Shell. Имя пространства имен должно быть уникальным, так как это часть записи системы доменных имен (DNS).

  1. Перейдите на портал Azure.

  2. В строке поиска в разделе введите Event Grid Namespacesи выберите Event Grid Namespaces из результатов.

    Снимок экрана: панель поиска в портал Azure.

  3. На странице пространств имен сетки событий нажмите кнопку +Создать на панели команд. Снимок экрана: страница пространства имен сетки событий с кнопкой

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

    1. Выберите подписку Azure, в которой нужно создать пространство имен.
    2. Создайте новую группу ресурсов, выбрав "Создать" или выбрав существующую группу ресурсов.
    3. Введите имя для пространства имен.
    4. Выберите расположение, в котором нужно создать группу ресурсов.
    5. Нажмите Проверка и создание.
      Снимок экрана: страница
    6. На странице Отзыв и создание выберите Создать.
  5. На странице развертывания выберите "Перейти к ресурсу" после успешного развертывания.

Получение ключа доступа

  1. На странице пространства имен сетки событий выберите клавиши Access в меню слева.
  2. Нажмите кнопку копирования рядом с ключом доступа. Снимок экрана: страница пространства имен сетки событий с выбранной вкладкой
  3. Сохраните ключ доступа где-то. Он понадобится позже при работе с кратким руководством.

Создание раздела в пространстве имен

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

  1. Выберите разделы в меню слева.
  2. На странице "Темы" выберите "+ Раздел" на панели команд. Снимок экрана, на котором показана страница
  3. На странице "Создание раздела" выполните следующие действия:
    1. Введите имя раздела.
    2. Нажмите кнопку создания.
      Снимок экрана: страница

Создание конечной точки сообщения

Перед подпиской на события создадим конечную точку для сообщения о событии. Обычно конечная точка выполняет действия на основе данных событий. Чтобы упростить это краткое руководство, вы развернете предварительно созданное веб-приложение , отображающее сообщения о событиях. Развернутое решение содержит план службы приложений, веб-приложение службы приложений и исходный код из GitHub.

  1. Выберите Развернуть в Azure, чтобы развернуть решение в своей подписке.

    Кнопка для развертывания шаблона Resource Manager в Azure.

  2. На странице Настраиваемое развертывание выполните следующие действия:

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

    2. В поле Имя сайта введите имя веб-приложения.

    3. В поле Имя плана размещения введите имя плана службы приложений для размещения веб-приложения.

    4. Выберите Review + create (Просмотреть и создать).

      Снимок экрана: страница настраиваемого развертывания.

  3. На странице Отзыв и создание выберите Создать.

  4. Развертывание занимает несколько минут. На странице развертывания выберите "Перейти к группе ресурсов".

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

  5. На странице Группа ресурсов в списке ресурсов выберите созданное вами веб-приложение. В списке вы также увидите план службы приложений и учетную запись хранения.

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

  6. На странице Служба приложений для веб-приложения выберите URL-адрес для перехода на веб-сайт. URL-адрес должен иметь следующий формат: https://<your-site-name>.azurewebsites.net.

    Снимок экрана: выбор ссылки для перехода к веб-приложению.

  7. Убедитесь, что вы видите сайт, но события еще не размещены на нем.

    Снимок экрана: новый сайт.

    Внимание

    Держите окно средства просмотра Сетки событий Azure открытым, чтобы вы могли видеть события по мере их публикации.

Создание подписки на событие

Создайте подписку на событие, задав режим доставки для push-отправки, которая поддерживает отправку.

  1. Перейдите на вкладку или окно со страницей пространства имен сетки событий, открытой на вкладке или окне со страницей пространства имен Центров событий.
  2. На странице пространства имен сетки событий выберите разделы в меню слева.
  3. На странице разделов выберите тему, созданную на предыдущем шаге.
  4. Выберите +Подписка на панели команд. Снимок экрана: страница раздела с выбранной кнопкой
  5. На странице "Создание подписки на события" выполните следующие действия.
    1. На вкладке "Базовый " введите имя подписки на событие.

    2. Выберите "Отправить" для режима доставки событий.

    3. Для типа конечной точки выберите веб-перехватчик.

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

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

    5. На странице веб-перехватчика укажите конечную точку (напримерhttps://spegridsite0520.azurewebsites.net/api/updates: ), как показано в следующем примере, и нажмите кнопку "Подтвердить выбор".

      Снимок экрана: страница веб-перехватчика со значением конечной точки подписчика.

    6. Вернитесь на страницу "Создать подписку" и нажмите кнопку "Создать".

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

Отправка событий в раздел

Теперь отправьте пример события в раздел пространства имен, выполнив действия, описанные в этом разделе.

Объявление переменных

  1. Запустите Cloud Shell в портал Azure. Переключитесь на Bash.

    Снимок экрана: Cloud Shell.

  2. Выполните следующую команду, чтобы объявить переменную для хранения имени группы ресурсов. Замените RESOUREGROUPNAME именем группы ресурсов Azure.

    resource_group=RESOURCEGROUPNAME
    
  3. В Cloud Shell выполните следующую команду, чтобы объявить переменную для хранения имени пространства имен. Замените NAMESPACENAME именем пространства имен Сетки событий.

    namespace=NAMESPACENAME
    
  4. Выполните следующую команду, чтобы объявить переменную, чтобы сохранить значение ключа доступа, которое вы указали ранее. Замените ACCESSKEY значением ключа доступа к пространству имен Сетки событий.

    key=ACCESSKEY
    
  5. В Cloud Shell выполните следующую команду, чтобы объявить переменную для хранения имени пространства имен.

    topic=TOPICNAME
    

Публикация события

  1. Получите имя узла пространства имен. Он используется для создания конечной точки пространства имен HTTP, в которую отправляются события. Следующие операции были впервые доступны в версии 2023-06-01-previewAPI. Вы также можете получить имя узла на странице обзора пространства имен Сетки событий в портал Azure.

    publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic:publish?api-version=2023-06-01-preview
    
  2. Создайте пример события, соответствующего требованиям CloudEvents :

    event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
    

    Элемент data — полезные данные события. Любое значение JSON с правильным форматом может быть в этом поле. Дополнительные сведения о свойствах (также известных как атрибуты контекста), которые могут идти в событии, см . в спецификациях CloudEvents .

  3. Используйте CURL для отправки события в раздел. CURL — это служебная программа, которая отправляет HTTP-запросы.

    curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
    

Убедитесь, что средство просмотра Сетка событий Azure получило событие

Убедитесь, что веб-приложение просмотра Сетка событий Azure отображает события, полученные из сетки событий.

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

В этом кратком руководстве вы использовали веб-перехватчик в качестве обработчика событий. Краткое руководство по использованию концентратора событий Azure в качестве обработчика событий см. в статье "Доставка событий в Центры событий Azure с помощью разделов пространства имен".