Использование маршрутизации сообщений Центр Интернета вещей для отправки сообщений из устройства в облако в службы Azure

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

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

  • Фильтруйте данные перед маршрутизацией, применяя расширенные запросы. Маршрутизация сообщений позволяет запрашивать свойства сообщения, текст сообщения, теги и свойства двойников устройств. Дополнительные сведения см . в запросах маршрутизации сообщений.

Центр Интернета вещей задает общий формат для всех случаев обмена сообщениями с устройства в облако для взаимодействия по различным протоколам. Дополнительные сведения см. в статье Создание и чтение сообщений Центра Интернета вещей.

Примечание.

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

Routing endpoints (Конечные точки маршрутизации)

Каждый центр Интернета вещей имеет конечную точку маршрутизации по умолчанию, называемую сообщениями и событиями , совместимыми с Центрами событий. Вы также можете создавать пользовательские конечные точки, указывающие на другие службы в подписке Azure.

Центр Интернета вещей в настоящее время поддерживает следующие конечные точки для маршрутизации сообщений:

  • Встроенная конечная точка
  • Контейнеры хранилища
  • Очереди служебной шины
  • Разделы служебной шины
  • Event Hubs
  • Cosmos DB (предварительная версия)

Дополнительные сведения о каждой из этих конечных точек см. в Центр Интернета вещей конечных точках.

Каждое сообщение направляется ко всем конечным точкам, запросы маршрутизации которых совпадают. Это означает, что сообщение может быть перенаправлено на несколько конечных точек. Однако если сообщение соответствует нескольким маршрутам, указывающим на одну конечную точку, Центр Интернета вещей доставляет сообщение в ту конечную точку только один раз.

Для маршрутизации сообщений Центру Интернета вещей требуется доступ на запись к этим конечным точкам служб. При настройке конечных точек через портал Azure необходимые разрешения добавляются автоматически. Если вы настраиваете конечные точки с помощью PowerShell или Azure CLI, необходимо предоставить разрешение на доступ к записи.

Сведения о создании конечных точек см. в следующих статьях:

Убедитесь, что службы настроены для поддержки ожидаемой пропускной способности. Например, если вы используете Центры событий в качестве пользовательской конечной точки, необходимо настроить единицы пропускной способности для этого концентратора событий, чтобы он смог обрабатывать входящий трафик событий, которые вы планируете отправлять через маршрутизацию сообщений Центр Интернета вещей. Аналогичным образом, при использовании очереди служебная шина в качестве конечной точки необходимо настроить максимальный размер, чтобы убедиться, что очередь может хранить все данные входящего трафика до тех пор, пока она не будет удалена потребителями. При первой настройке решения Интернета вещей может потребоваться отслеживание других конечных точек и внесение необходимых корректировок фактической нагрузки.

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

Маршрутизация в конечную точку в другой подписке

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

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

Запросы маршрутизации

Центр Интернета вещей маршрутизация сообщений предоставляет возможность запроса для фильтрации данных перед маршрутизацией данных в конечные точки. Каждый настраиваемый запрос маршрутизации имеет следующие свойства:

Свойство Описание
Имя Уникальное имя, определяющее запрос.
Источник Источник потока данных, в отношении которого выполняются действия. Например, телеметрия устройства.
Условие Выражение запроса для запроса маршрутизации, выполняемого в свойствах приложения сообщения, системных свойствах, тексте сообщения, тегах двойника устройства и свойствах двойника устройства, чтобы определить, соответствует ли это конечной точке.
Конечная точка Имя конечной точки, в которую Центр Интернета вещей отправляет сообщения, соответствующие запросу. Рекомендуется выбрать конечную точку в том же регионе, в котором находится Центр Интернета вещей.

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

Дополнительные сведения см. в Центр Интернета вещей синтаксисе запросов маршрутизации сообщений.

Чтение данных, которые были перенаправлены

Используйте следующие статьи, чтобы узнать, как считывать сообщения из конечной точки.

Резервный маршрут

Резервный маршрут отправляет все сообщения, которые не удовлетворяют условиям запроса ни в одном из существующих маршрутов в встроенную конечную точку (сообщения и события), совместимую с Центрами событий. Если маршрутизация сообщений включена, можно включить возможность резервного маршрута. После создания любого маршрута данные перестают передаваться в встроенную конечную точку, если маршрут не будет создан в этой конечной точке. Если нет маршрутов к встроенной конечной точке и включен резервный маршрут, то в встроенную конечную точку будут отправляться только сообщения, которые не соответствуют условиям запроса на маршрутах. Даже если все существующие маршруты удалены, возможность резервного маршрута должна быть включена для получения всех данных во встроенной конечной точке.

Вы можете включить или отключить резервный маршрут в портал Azure в колонке маршрутизации сообщений. Вы также можете использовать Azure Resource Manager для FallbackRouteProperties для использования пользовательской конечной точки для резервного маршрута.

События без использования телеметрии

Помимо телеметрии устройства маршрутизация сообщений также позволяет отправлять события, отличные от телеметрии, в том числе:

  • События изменения двойников устройств
  • События жизненного цикла устройства
  • События жизненного цикла задания устройства
  • События изменения цифровых двойников
  • События, связанные с состоянием подключения устройства

Например, если маршрут создается с источником данных для события изменения двойника устройства, Центр Интернета вещей отправляет сообщения в конечную точку, содержащую изменение двойника устройства. Аналогичным образом, если маршрут создается с источником данных с набором событий жизненного цикла устройства, Центр Интернета вещей отправляет сообщение о том, было ли удалено или создано устройство или модуль. Дополнительные сведения о событиях жизненного цикла устройств см. в разделе Уведомления о жизненном цикле устройств и модулей.

При использовании Самонастраивающийся Интернета вещей Azure разработчик может создавать маршруты с источником данных, заданным для событий изменений Digital Twin, и Центр Интернета вещей отправлять сообщения при установке или изменении свойства цифрового двойника, цифровой двойник или при возникновении события изменения для базового двойника устройства. Наконец, если маршрут создается с источником данных, заданным для событий состояния устройства Подключение ion, Центр Интернета вещей отправляет сообщение, указывающее, подключено ли устройство или отключено.

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

Ограничения для событий состояния подключения устройства

События состояния подключения устройства доступны для устройств, подключающихся с помощью протокола MQTT или AMQP или с помощью любого из этих протоколов через WebSockets. Запросы, созданные только с использованием протокола HTTPS, не будут активировать уведомления о состоянии подключения устройств. Чтобы Центр Интернета вещей начал отправку событий состояния подключения устройств, после открытия подключения устройство должно вызвать операцию приема сообщений из облака на устройство или операцию отправки данных телеметрии с устройства в облако. За пределами пакетов SDK для Интернета вещей Azure при использовании MQTT эти операции эквивалентны операциям SUBSCRIBE или PUBLISH в соответствующих разделах сообщений. По протоколу AMQP эти операции соответствуют присоединению или передаче сообщения по соответствующим путям связи. Дополнительные сведения см. в следующих статьях:

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

Тестовые маршруты

При создании маршрута или изменении имеющегося маршрута необходимо проверить запрос маршрута, отправив пример сообщения. Вы можете протестировать отдельные маршруты или проверить все маршруты за один раз и не отправлять сообщения на конечные точки во время теста. Тестирование можно выполнить с помощью портала Microsoft Azure, Azure Resource Manager, Azure PowerShell и Azure CLI. Результаты помогают определить, совпадает ли пример сообщения или не соответствует запросу, или если тест не удалось выполнить, так как пример сообщения или синтаксиса запроса неверны. Дополнительные сведения см. в разделе "Тестовый маршрут" и "Тестирование всех маршрутов".

Задержка

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

В большинстве случаев среднее увеличение задержки меньше 500 миллисекунда. Однако задержка может варьироваться и повышаться в зависимости от уровня центра Интернета вещей и архитектуры решения. Вы можете отслеживать задержку с помощью маршрутизации: задержка сообщений для сообщений или событий или d2c.endpoints.latency.builtIn.events Центр Интернета вещей метрик. Создание или удаление любого маршрута после первого не влияет на сквозную задержку.

Мониторинг и устранение неполадок

Центр Интернета вещей предоставляет несколько метрик, связанных с маршрутизацией и конечными точками, для получения представления о состоянии работоспособности центра и отправленных сообщений. Кроме того, во время оценки запроса маршрутизации и работоспособности конечных точек можно отслеживать ошибки, которые воспринимаются Центр Интернета вещей с категорией маршрутов в журналах ресурсов Центр Интернета вещей. Дополнительные сведения об использовании метрик и журналов ресурсов с Центр Интернета вещей см. в статье "Мониторинг Центр Интернета вещей Azure".

Для получения состояния работоспособности конечных точек можно использовать REST API Get Endpoint Health .

Используйте руководство по устранению неполадок маршрутизации для получения дополнительных сведений и поддержки по устранению неполадок маршрутизации.