Обзор среды выполнения и архитектуры Azure IoT Edge

Применимо к:IoT Edge 1.5 флажок IoT Edge 1.5

Это важно

IoT Edge 1.5 LTS — это поддерживаемый выпуск. IoT Edge 1.4 LTS достиг срока окончания службы 12 ноября 2024 года. Если вы используете более ранний выпуск, ознакомьтесь с Update IoT Edge.

Среда выполнения IoT Edge — это набор программ, которые превращают устройство в устройство IoT Edge. Компоненты времени выполнения позволяют IoT Edge устройствам получать код для запуска на периферии и передавать результаты.

Среда выполнения IoT Edge отвечает за следующие функции на IoT Edge устройствах:

  • Установка и обновление рабочих нагрузок.
  • Обслуживание стандартов безопасности Azure IoT Edge.
  • Следите, чтобы модули IoT Edge продолжали работать.
  • Передавайте данные о состоянии модуля в облако для удаленного мониторинга.
  • Управление обменом данными между:
    • Низовое оборудование и устройства IoT Edge
    • Модули на устройстве IoT Edge
    • Устройство IoT Edge и облако
    • устройства IoT Edge

Диаграмма, показывающая, как среда выполнения передает аналитические данные и работоспособность модуля в IoT Hub.

Обязанности среды выполнения IoT Edge относятся к двум категориям: обмен данными и управлением модулями. Две компоненты среды выполнения IoT Edge выполняют эти роли. Агент IoT Edge развертывает модули и отслеживает модули, а концентратор IoT Edge обрабатывает связь.

Агент IoT Edge и концентратор IoT Edge являются модулями, как и любой другой модуль, работающий на устройстве IoT Edge. Иногда они называются модулями среды выполнения.

Агент IoT Edge

Агент IoT Edge является одним из двух модулей в среде выполнения Azure IoT Edge. Он создает экземпляры модулей, гарантирует, что они работают и сообщает о своем состоянии в IoT Hub. Эти данные конфигурации записываются в качестве свойства двойника модуля агента IoT Edge.

Управляющая программа безопасности IoT Edge запускает агент IoT Edge при запуске устройства. Агент получает двойник модуля из IoT Hub и проверяет манифест развертывания. Манифест развертывания — это JSON-файл, который объявляет модули, которые необходимо запустить.

Каждый элемент в манифесте развертывания содержит определенные сведения о модуле и используется агентом IoT Edge для управления жизненным циклом модуля. Дополнительные сведения обо всех свойствах, которые использует агент IoT Edge для управления модулями, вы можете найти в разделе Свойства агента IoT Edge и двойников модуля концентратор IoT Edge.

Агент IoT Edge отправляет ответ среды выполнения в IoT Hub. Ниже приведен список возможных ответов:

  • 200 – OK
  • 400 — конфигурация развертывания имеет неверный формат или недействительна.
  • 417 — у устройства нет заданной конфигурации развертывания.
  • 412 — версия схемы в конфигурации развертывания недопустима.
  • 406. Устройство IoT Edge находится в автономном режиме или не отправляет отчеты о состоянии.
  • 500 — произошла ошибка во время выполнения IoT Edge.

Дополнительные сведения о создании манифестов развертывания см. в статье Learn, как развертывать модули и устанавливать маршруты в IoT Edge.

Безопасность

Агент IoT Edge играет важную роль в безопасности устройства IoT Edge. Например, он выполняет такие действия, как проверка образа модуля перед запуском.

Дополнительные сведения о платформе безопасности Azure IoT Edge см. в разделе IoT Edge диспетчер безопасности.

центр IoT Edge

Центр IoT Edge — это другой модуль, составляющий среду выполнения Azure IoT Edge. Он выступает в качестве локального прокси-сервера для IoT Hub, предоставляя те же конечные точки протокола, что и IoT Hub. Эта согласованность означает, что клиенты могут подключаться к среде выполнения IoT Edge так же, как и к IoT Hub.

Центр IoT Edge не является полной локальной версией IoT Hub. Он делегирует некоторые задачи на свой IoT Hub. Например, чтобы включить подключение устройства, центр IoT Edge автоматически загружает сведения о авторизации из IoT Hub при первом подключении. После установки первого подключения центр IoT Edge кэширует данные авторизации локально. Будущие подключения с этого устройства авторизованы без необходимости скачать сведения о авторизации из облака снова.

Облачное взаимодействие

Чтобы уменьшить пропускную способность, используемую решением IoT Edge, центр IoT Edge оптимизирует количество фактических подключений к облаку. Центр IoT Edge принимает логические подключения из модулей или подчиненных устройств и объединяет их для одного физического подключения к облаку. Сведения об этом процессе прозрачны для остальной части решения. Клиенты считают, что у них есть собственное подключение к облаку, хотя все они используют одно и то же подключение. Центр IoT Edge может использовать протокол AMQP или MQTT для обмена данными с облаком независимо от протоколов, используемых подчиненными устройствами.

Это важно

IoT Edge концентратор поддерживает только мультиплексирование подключений (объединение нескольких логических подключений в одно физическое соединение) при использовании AMQP в качестве вышестоящего протокола. Если вы настраиваете MQTT в качестве вышестоящего протокола, каждый модуль и нижнее устройство используют собственное подключение к IoT Hub. AMQP — это протокол вышестоящей передачи по умолчанию.

Дополнительные сведения о настройке вышестоящего протокола см. в разделе "Выбор вышестоящего протокола".

Скриншот демонстрирует отношения с IoT Edge концентратором как шлюзом между физическими устройствами и IoT Hub.

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

Локальная связь

Центр IoT Edge упрощает локальную связь. Он обеспечивает обмен данными между устройствами и модулями, осуществляя брокерскую передачу сообщений, чтобы устройства и модули оставались независимыми друг от друга. Узел IoT Edge поддерживает функции маршрутизации сообщений, поддерживаемые IoT Hub.

Использование маршрутизации

Механизм брокерирования использует те же функции маршрутизации, что и IoT Hub, чтобы указать способ передачи сообщений между устройствами или модулями. Во-первых, устройства или модули указывают входные данные, в которых они принимают сообщения и выходные данные, в которые они записывают сообщения. Затем разработчик решения может направлять сообщения между источником (например, выходными данными) и назначением (например, входными данными) с потенциальными фильтрами.

Screenshot показывает, как маршруты между модулями проходят через IoT Edge hub.

Устройства или модули, использующие пакеты SDK для устройств Azure IoT с протоколом AMQP, могут использовать маршрутизацию. Все примитивы обмена сообщениями IoT Hub, такие как телеметрия, прямые методы, C2D и двойники, поддерживаются, но обмен данными по определяемым пользователем темам не поддерживается.

Дополнительные сведения о маршрутах см. в статье Learn, как развертывать модули и устанавливать маршруты в IoT Edge.

Доступны следующие функции механизма брокера:

Функции Маршрутизация
Телеметрия D2C
Локальная телеметрия
DirectMethods
Близнец
C2D для устройств
Заказ
Фильтрация
Определяемые пользователем разделы
Межустройственное взаимодействие
Локальное вещание

Подключение к центру IoT Edge

Центр IoT Edge принимает подключения от клиентов устройств или модулей через протокол MQTT или протокол AMQP.

Замечание

Центр IoT Edge поддерживает клиенты, которые подключаются с помощью MQTT или AMQP. Он не поддерживает клиентов, использующих ПРОТОКОЛ HTTP.

Когда клиент подключается к центру IoT Edge, выполняются следующие действия:

  1. Если используется протокол TLS (рекомендуется), клиент и концентратор IoT Edge создают канал TLS для установления зашифрованного обмена данными.
  2. Клиент отправляет данные проверки подлинности в центр IoT Edge для идентификации себя.
  3. Центр IoT Edge авторизует или отклоняет подключение на основе политики авторизации.

Безопасные подключения (TLS)

По умолчанию центр IoT Edge принимает только подключения, защищенные с помощью TLS. Например, он принимает зашифрованные подключения, которые сторонние разработчики не могут расшифровать.

Когда клиент подключается к центру IoT Edge через порт 8883 (MQTTS) или 5671 (AMQPS), он устанавливает канал TLS. Во время рукопожатия TLS концентратор IoT Edge отправляет свою сертификатную цепочку, которую клиент должен проверить. Чтобы проверить цепочку сертификатов, необходимо установить корневой сертификат центра IoT Edge в качестве доверенного сертификата на клиенте. Если корневой сертификат не является доверенным, центр IoT Edge отклоняет клиентскую библиотеку с ошибкой проверки сертификата.

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

Аутентификация

Центр IoT Edge принимает подключения только с устройств или модулей, имеющих удостоверение IoT Hub. Например, эти устройства и модули регистрируются в IoT Hub и используют один из трех методов аутентификации клиента, которые IoT Hub поддерживает для подтверждения их подлинности: Симметричная аутентификация по ключу, Аутентификация с самозаверяющим X.509 сертификатом или Аутентификация с X.509 сертификатом, подписанным УЦ. Центр IoT Edge может проверять эти идентификаторы IoT Hub локально, чтобы подключения оставались доступными в автономном режиме.

модули IoT Edge в настоящее время поддерживают только проверку подлинности симметричного ключа.

Авторизация

Центр IoT Edge проверяет, принадлежит ли клиент набору доверенных клиентов, определенных в IoT Hub. Вы указываете набор доверенных клиентов, настраивая отношения родитель/ребенок или устройство/модуль в IoT Hub. При создании модуля в IoT Edge автоматически устанавливается отношение доверия между этим модулем и его IoT Edge устройством. Это единственная модель авторизации, поддерживаемая механизмом брокера маршрутизации.

Удаленная конфигурация

Облако полностью управляет центром IoT Edge. Он получает конфигурацию из IoT Hub через module twin. Двойник содержит нужное свойство, называемое маршруты, которое объявляет, как сообщения передаются в рамках развертывания. Дополнительные сведения о маршрутах см. в разделе "Объявление маршрутов".

Кроме того, можно настроить несколько параметров, настроив переменные environment в концентраторе IoT Edge.

Данные телеметрии качества исполнения

IoT Edge собирает анонимные данные телеметрии из среды выполнения узла и системных модулей для повышения качества продукта. Эта информация называется телеметрией качества выполнения. Агент IoT Edge периодически отправляет собранные данные телеметрии в виде сообщений из устройства в облако в IoT Hub. Эти сообщения не отображаются в обычной телеметрии и не используют квоту сообщений.

Агент IoT Edge и концентратор создают метрики, которые можно собирать для понимания производительности устройства. Подмножество этих метрик собирается агентом IoT Edge в рамках телеметрии качества среды выполнения. Метрики, собранные для телеметрии качества среды выполнения, помечены тегом ms_telemetry. Сведения обо всех доступных метриках см. в разделе " Встроенные метрики Access".

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

Агент IoT Edge ежечасно собирает данные телеметрии о качестве среды выполнения и отправляет одно сообщение в IoT Hub каждые 24 часа.

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

  • Задайте для переменной SendRuntimeQualityTelemetry среды значение falseedgeAgent.
  • Снимите флажок на портале Azure во время развертывания.

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