Доставка событий в Центры событий Azure с помощью разделов пространства имен на портале Azure

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

Конкретно говоря, вы используете портал Azure и Curl, чтобы публиковать события в тему пространства имен на Event Grid и передавать эти события из подписки на событие в целевое место назначения обработчика Event Hubs. Дополнительные сведения о модели доставки push-уведомлений см. в обзоре доставки push-уведомлений.

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

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

Пространство имен Сетки событий предоставляет определяемую пользователем конечную точку, в которую вы публикуете события. В следующем примере создается пространство имен в группе ресурсов с помощью 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. На странице пространства имен Event Grid выберите ключи доступа в меню слева.
  2. Нажмите кнопку копирования рядом с ключом доступа. Снимок экрана: страница пространства имен сетки событий с выбранной вкладкой
  3. Сохраните ключ доступа где-то. Его можно использовать позже в этом кратком руководстве.

Включить управляемую идентификацию для пространства имен Event Grid

Включите управляемую системой идентификацию в пространстве имен Event Grid. Чтобы доставлять события в центры событий в пространстве имен Event Hubs с помощью управляемой идентичности, выполните следующие действия:

  1. Включите управляемое удостоверение, назначаемое системой или назначаемое пользователем: пространства имен. Продолжайте чтение следующего раздела, чтобы узнать, как активировать управляемое удостоверение с помощью Azure CLI.
  2. Добавьте удостоверение в роль отправителя данных концентраторов событий Azure в пространстве имен концентраторов событий. Продолжайте читать следующий раздел, чтобы узнать, как добавить назначение на роль.
  3. Настройте подписку на события, которая использует концентратор событий в качестве конечной точки для использования управляемого удостоверения, назначаемого системой или назначаемого пользователем.

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

  1. На странице пространства имен Event Grid выберите Идентификация в меню слева.

  2. На странице "Идентификация" выберите "Включено" для состояния.

  3. Выберите Сохранить на панели команд.

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

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

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

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

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

Создайте ресурс «Центры событий», используемый в качестве места назначения для обработчика в подписке на отправку топика пространства имен. Выполните эти действия на отдельной вкладке браузера или в отдельном окне. Перейдите на портал Azure и войдите, используя те же учетные данные, которые вы использовали раньше и ту же подписку Azure.

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

Добавьте управляемое удостоверение Event Grid в роль отправителя данных Event Hubs.

  1. На странице Пространство имен Центров событий выберите Управление доступом (IAM) в левом меню.
  2. Выберите Добавить ->Добавить назначение ролей на панели команд. Снимок экрана, показывающий страницу пространства имен Центров событий с выбранной вкладкой управления доступом.
  3. На странице "Добавление назначения ролей " найдите отправителя данных Центров событий и выберите "Отправитель данных Центров событий Azure " из списка ролей и нажмите кнопку "Далее". Снимок экрана: страница
  4. На вкладке "Члены" выберите Управляемое удостоверение для типа, а затем нажмите + Выбрать участников. Снимок экрана: вкладка
  5. На странице "Выбор управляемых удостоверений " выберите пространство имен сетки событий для управляемого удостоверения, а затем выберите управляемое удостоверение с тем же именем, что и пространство имен Сетки событий. Снимок экрана: страница выбора управляемых удостоверений.
  6. На странице "Выбор управляемых удостоверений" нажмите кнопку "Выбрать". Снимок экрана: выбранное управляемое удостоверение.
  7. Теперь на странице "Добавление назначения ролей" выберите "Рецензирование и назначение". Снимок экрана, показывающий страницу добавления назначений ролей с выбранным управляемым удостоверением.
  8. На странице "Рецензирование и назначение" выберите "Рецензирование и назначение".

Создание концентратора событий

  1. На странице пространство имен Event Hubs выберите Event Hubs в меню слева.
  2. На странице "Центры событий" выберите +Концентратор событий на панели команд. Снимок экрана: страница
  3. На странице "Создание концентратора событий " введите имя концентратора событий и нажмите кнопку "Проверить и создать". Снимок экрана: страница
  4. На странице Отзыв и создание выберите Создать.

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

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

  1. Перейдите на вкладку или окно со страницей пространства имен сетки событий , открытой на вкладке или окне со страницей пространства имен Центров событий .
  2. На странице пространства имен Event Grid выберите Темы в меню слева.
  3. На странице разделов выберите тему, созданную на предыдущем шаге.
  4. Выберите +Подписка на панели команд. Снимок экрана: страница раздела с выбранной кнопкой
  5. На странице "Создание подписки на события" выполните следующие действия.
    1. На вкладке "Базовый" введите имя подписки на событие.
    2. Выберите Push для режима доставки событий.
    3. Убедитесь, что концентратор событий выбран для типа конечной точки.
    4. Выберите " Настроить конечную точку". Снимок экрана, на котором показана страница
    5. На странице "Выбор концентратора событий " выполните следующие действия.
      1. Выберите подписку Azure и группу ресурсов с концентратором событий.
      2. Выберите пространство имен Центров событий и концентратор событий.
      3. Затем нажмите кнопку "Подтвердить выбор". Снимок экрана: страница
    6. Вернувшись на страницу создания подписки, выберите Системное назначение для параметра Тип управляемой идентификации. Снимок экрана, показывающий страницу
    7. Нажмите кнопку "Создать".

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

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

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

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

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

    key=ACCESSKEY
    
  3. Объявите переменную для хранения URI операции публикации. Замените NAMESPACENAME именем пространства имен Сетки событий и TOPICNAME именем раздела.

    publish_operation_uri=https://NAMESPACENAME.eastus-1.eventgrid.azure.net/topics/TOPICNAME:publish?api-version=2023-06-01-preview
    
  4. Создайте пример события, соответствующего требованиям 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 .

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

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

    Перейдите на страницу пространства имен Центров событий на портале Azure, обновите страницу и убедитесь, что счетчик входящих сообщений на диаграмме указывает, что событие получено.

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

Дальнейшие шаги

В этой статье вы создали и настроили пространство имен Event Grid и ресурсы Центров событий. Пошаговые инструкции по получению событий из концентратора событий см. в следующих руководствах: