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

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

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

Общие сведения о маршрутизации событий

Существует два main сценария отправки данных 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 Azure Digital Twins, команды CLI или портал Azure.

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

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: