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


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

Область применения:Флажок IoT Edge 1.5 IoT Edge 1.5 Флажок IoT Edge 1.4 IoT Edge 1.4

Внимание

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

Среда выполнения 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

Снимок экрана: взаимодействие среды выполнения с аналитическими сведениями и работоспособностью модулей с I o T Hub.

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

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

Агент IoT Edge

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

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

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

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

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

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

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

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

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

Концентратор IoT Edge

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

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

Обмен данными по сети

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

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

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

Локальный обмен данными

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

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

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

Снимок экрана, показывающий, как маршруты между модулями проходят через центр I o T Edge.

Маршрутизация может использоваться устройствами или модулями, созданными с помощью пакетов SDK для устройств Интернета вещей Azure, с помощью протокола AMQP. Все примитивы обмена сообщениями Центр Интернета вещей (например, телеметрия), прямые методы, C2D, двойники, поддерживаются, но обмен данными по определяемым пользователем темам не поддерживается.

Дополнительные сведения о маршрутах см. в статье о развертывании модулей и установке маршрутов в 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 принимает подключения только с устройств или модулей, имеющих удостоверение Центр Интернета вещей. Например, те, которые зарегистрированы в Центр Интернета вещей и имеют один из трех методов проверки подлинности клиента, поддерживаемых Центр Интернета вещей, чтобы подтвердить свое удостоверение: аутентификация с симметричными ключами, самозаверяющая проверка подлинности X.509, подписанный ЦС X.509. Такие удостоверения Центра Интернета вещей Azure могут проверяться центром IoT Edge локально, благодаря чему в автономном режиме сохраняется возможность установки новых подключений.

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

Авторизация

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

Удаленная настройка

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

Кроме того, можно выполнить несколько конфигураций, настроив переменные среды в Центре IoT Edge.

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

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

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

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

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

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

  • Установка переменной SendRuntimeQualityTelemetryfalse среды для edgeAgent
  • снимите соответствующий флажок на портале Microsoft Azure во время развертывания.

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