Маршрутизация событий 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, которое поддерживает подключение маршрутизации. Поддерживаемые назначения:

  • Пользовательские разделы Сетки событий
  • Концентраторы событий
  • Служебная шина

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

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

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

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

Ниже перечислены 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: