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


Маршрутизация событий Azure Digital Twins

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

Маршрутизация уведомлений о событиях из Azure Digital Twins — это двухэтапный процесс: создание конечных точек, а затем создание маршрутов событий для отправки данных в эти конечные точки. В этой статье подробно рассматриваются все эти понятия. В нем также объясняется, что происходит, когда конечная точка не может доставлять событие вовремя (процесс, известный как недоставленная буква).

Обзор маршрутизации событий

Существует два основных сценария отправки данных Azure Digital Twins, а для выполнения обоих задач используются маршруты событий:

  • Отправка данных событий из одного двойника графа Azure Digital Twins в другой. Например, при изменении свойства одного цифрового двойника может потребоваться уведомить и обновить другой цифровой двойник в соответствии с обновленными данными.
  • Отправка данных за пределы Azure Digital Twins в потребляющие службы данных для дополнительного хранения или обработки. Например, если вы уже используете Azure Maps, вы можете внести свой вклад в данные Azure Digital Twins, чтобы улучшить решение с помощью интегрированного моделирования или запросов.

Для любого пункта назначения события маршрут событий работает через отправку данных о событиях из Azure Digital Twins в пользовательски-определенные конечные точки в ваших подписках. В настоящее время для конечных точек поддерживаются три службы Azure: Центры событий, сетка событий и служебная шина. Каждая из этих служб Azure может быть подключена к другим службам и выступает в качестве посредника, пересылая данные к конечным пунктам назначения, таким как Azure Maps, или обратно в Azure Digital Twins для обновления зависимых графов.

На следующей схеме показан поток данных о событиях через более крупное решение Интернета вещей, которое включает отправку данных Azure Digital Twins через конечные точки в другие службы Azure, а также обратно в Azure Digital Twins:

Схема маршрутизации данных Azure Digital Twins через конечные точки в несколько нижестоящих служб.

Для исходящего трафика данных за пределами Azure Digital Twins типичные целевые объекты для маршрутов событий — Azure Maps, хранилище и решения аналитики. Azure Digital Twins реализует доставку данных по крайней мере один раз в службы исходящего трафика.

Для маршрутизации событий внутренних цифровых двойников в одном решении Azure Digital Twins перейдите к следующему разделу.

Маршрутизация внутренних событий цифрового двойника

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

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

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

Чтобы подробно ознакомиться с процессом настройки функции Azure для обработки событий цифровых двойников, см. статью Настройка обработки событий типа «двойник-двойник».

Создание конечных точек

Чтобы определить маршрут события, разработчики сначала должны определить конечные точки. Конечная точка представляет собой удалённый объект вне Azure Digital Twins, который поддерживает подключение маршрута. Поддерживаемые пункты назначения:

  • Пользовательские темы Event Grid
  • Концентраторы событий
  • Шина сервисов

Для создания конечной точки можно использовать интерфейсы REST API, команды CLI Azure Digital Twins или портал Azure.

При определении конечной точки необходимо предоставить следующее:

  • имя конечной точки;
  • Тип конечной точки (Сетка событий, Центры событий или служебная шина)
  • основная строка подключения и вторичная строка подключения для проверки подлинности;
  • Путь к теме конечной точки, например your-topic.westus2.eventgrid.azure.net

При необходимости можно создать конечную точку с аутентификацией на основе идентификации, чтобы использовать ее с управляемой идентификацией, назначаемой системой или пользователем. Этот параметр доступен только для центров событий и конечных точек типа Service Bus (он не поддерживается для Event Grid).

Ниже перечислены API конечных точек, доступные на уровне управления.

  • Создать конечную точку
  • Получение списка конечных точек
  • Получение конечной точки по имени
  • Удаление конечной точки по имени

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

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

Для создания маршрута событий можно использовать интерфейсы REST API, команды CLI Azure Digital Twins или портал Azure.

Ниже приведен пример создания маршрута событий в клиентском приложении с помощью вызова CreateOrReplaceEventRouteAsync.NET (C#) SDK:

string eventFilter = "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
var er = new DigitalTwinsEventRoute("endpointName", eventFilter);
await client.CreateOrReplaceEventRouteAsync("routeId", er);
  1. Сначала создается объект DigitalTwinsEventRoute, и конструктор принимает имя конечной точки. Это endpointName поле определяет конечную точку, например центры событий, сетку событий или служебная шина. Эти конечные точки должны быть созданы в подписке и подключены к Azure Digital Twins с помощью API уровня управления перед выполнением этого вызова регистрации.

  2. Объект маршрута событий также имеет поле Фильтр, которое можно использовать для ограничения типов событий, которые используют этот маршрут. Фильтр true включает маршрут без дополнительной фильтрации (фильтр false отключает маршрут).

  3. Затем этот объект маршрута событий передается в CreateOrReplaceEventRouteAsync вместе с именем маршрута.

Совет

Все функции пакета SDK имеют синхронные и асинхронные версии.

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

События недоставленных сообщений

Если конечная точка не может доставить событие в течение определённого времени или после нескольких попыток доставить событие, она может отправить несостоявшееся событие в учетную запись для хранения. Этот процесс называется дедлеттеринг. Azure Digital Twins отправит событие в очередь неудачных сообщений при выполнении одного из следующих условий:

  • Событие не доставлено в течение срока жизни
  • Число попыток доставки события превысило предельное значение

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

Прежде чем задать параметры расположения недоставленных сообщений, необходимо создать учетную запись хранения с контейнером. При создании конечной точки вы укажете URL-адрес для этого контейнера. Письмо с ошибкой доставки предоставляется в виде контейнерного URL с маркером SAS. Этот токен должен иметь только разрешение write для целевого контейнера в учетной записи хранения. Полностью сформированный URL-адрес будет иметь следующий формат: https://<storage-account-name>.blob.core.windows.net/<container-name>?<SAS-token>

Дополнительные сведения о маркерах SAS см. в статье Предоставление ограниченного доступа к ресурсам службы хранилища Azure с помощью подписанных URL-адресов.

Сведения о настройке конечной точки с использованием механизма отложенной обработки сообщений смотрите в разделе "Параметры конечной точки: отложенная обработка сообщений".

Типы сообщений о событиях

Различные типы событий в Центре Интернета вещей и Azure Digital Twins создают различные типы уведомлений, как описано ниже.

Тип уведомления Имя источника маршрутизации Создано на основе…
Уведомление об изменениях в цифровом двойнике Уведомление об изменении цифрового двойника изменение любого свойства цифрового двойника
Уведомление о жизненном цикле цифрового двойника Уведомление о жизненном цикле цифрового двойника любая операция создания или удаления цифрового двойника
Уведомление об изменении связи цифрового двойника Уведомление об изменении связи цифрового двойника любое изменение связи цифрового двойника
Сообщения телеметрии цифрового двойника Сообщения телеметрии любое сообщение телеметрии

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

Перейдите к пошаговые инструкции по настройке конечных точек и маршрутов событий:

Кроме того, выполните следующие действия, чтобы настроить функцию Azure для обработки событий двойников в Azure Digital Twins: