Использование устройства IoT Edge в качестве шлюза

Область применения:IoT Edge 1.5 проверка mark IoT Edge 1.5 IoT Edge 1.4 проверка mark 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 может работать как с прозрачным шлюзом, так и со шлюзом перевода.

Все шаблоны шлюза предоставляют следующие преимущества:

  • Аналитика на пограничном сервере — локально используйте службы ИИ для обработки данных, поступающих из подчиненных устройств, без отправки полной телеметрии в облако. Находите данные и реагируйте на запросы локально, а также отправляйте подмножество данных в Центр Интернета вещей.
  • Изоляция нижестоящего устройства — устройство шлюза может экранировать все подчиненные устройства от воздействия на Интернет. Оно может находиться между сетью операционных технологий (ОТ), не имеющей возможностей подключения, и компьютерной сетью (ИТ), которая обеспечивает доступ к Интернету. Аналогично устройства, у которых нет возможности подключаться к Центру Интернета вещей самостоятельно, могут вместо этого подключаться к устройству шлюза.
  • Мультиплексирование подключения. Все устройства, подключающиеся к Центру Интернета вещей через шлюз IoT Edge, могут использовать одно и то же базовое подключение. Для этого требуется, чтобы шлюз IoT Edge использовал AMQP в качестве протокола для восходящего канала.
  • Сглаживание трафика — Устройство IoT Edge автоматически будет выполнять экспоненциальную задержку, если Центр Интернета вещей регулирует трафик, при этом сообщения сохраняются локально. Это преимущество сделает ваше решение устойчивым к пикам трафика.
  • Автономная поддержка. Устройство шлюза хранит сообщения и обновления двойников, которые невозможно доставить в Центр Интернета вещей.

Прозрачные шлюзы

В шаблоне прозрачного шлюза устройства, которые теоретически могут подключиться к Центру Интернета вещей, могут вместо этого подключиться к устройству шлюза. Подчиненные устройства имеют собственные удостоверения Центра Интернета вещей и подключаются по любому из двух протоколов: MQTT и AMQP. Шлюз просто обеспечивает взаимодействие между устройствами и Центром Интернета вещей. Устройствам и пользователям, взаимодействующим с ними через Центр Интернета вещей, не известно, что их обмен данными происходит через шлюз. Такое отсутствие осведомленности означает, что шлюз можно считать прозрачным.

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

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

Связи родительских и дочерних устройств

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

Примечание.

Нижестоящему устройству выдаются данные непосредственно в Интернет или на устройства шлюза (с поддержкой IoT Edge или нет). Дочернее устройство может быть подчиненным устройством или устройством шлюза в вложенной топологии.

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

Облачная идентификация

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

Примечание.

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

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

У каждого дочернего устройства может быть только один родитель. По умолчанию у родительского может быть до 100 дочерних элементов. Это ограничение можно изменить, задав переменную среды Max Подключение edClients в модуле edgeHub родительского устройства.

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

Обнаружение шлюза

Дочернее устройство должно иметь возможность найти свое родительское устройство в локальной сети. Настройте устройство шлюза, задав имя узла, полное доменное имя или IP-адрес, по которому дочерние устройства смогут его находить.

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

На подчиненных устройствах IoT Edge используйте параметр parent_hostname в файле конфигурации, чтобы указать родительское устройство.

Безопасное подключение

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

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

Возможности устройств при подключении к прозрачным шлюзам

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

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

Возможность Устройство Интернета вещей Устройство IoT за шлюзом Устройство IoT Edge Устройство IoT Edge за шлюзом
Сообщения с устройства в облако (D2C) Да — IoT, D2C Да — дочернее устройство IoT, D2C Да — IoT Edge, D2C Да — дочернее устройство IoT Edge, D2C
Сообщения из облака на устройство (C2D) Да — IoT, C2D Да — дочернее устройство IoT, C2D Нет — IoT Edge, C2D Нет — дочернее устройство IoT Edge, C2D
Прямые методы Да — IoT, прямой метод Да — дочернее устройство IoT, прямой метод Да — IoT Edge, прямой метод Да — дочернее устройство IoT Edge, прямой метод
Двойники устройств и двойники модулей Да — IoT, двойники Да — дочернее устройство IoT, двойники Да — IoT Edge, двойники Да — дочернее устройство IoT Edge, двойники
Отправка файлов Да — IoT, отправка файлов Нет — дочернее устройство IoT, отправка файлов Нет — IoT Edge, отправка файлов Нет — дочернее устройство IoT Edge, отправка файлов
Извлечение образа контейнера Да — IoT Edge, извлечение контейнера Да — дочернее устройство IoT Edge, извлечение контейнера
Отправка BLOB-объектов Да — IoT Edge, отправка BLOB-объектов Да — дочернее устройство IoT Edge, отправка BLOB-объектов

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

BLOB-объекты, включая пакеты поддержки и журналы, можно передавать с дочерних устройств на родительские.

Шлюзы преобразования

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

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

Для шлюзов преобразования существует два шаблона: преобразование протоколов и преобразование удостоверений.

Схема, на которой показаны шаблоны шлюза перевода.

Преобразование протоколов

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

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

Преобразование удостоверения

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

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

Возможности устройств при подключении к шлюзам преобразования

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

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

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

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

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

Ознакомьтесь с тремя этапами настройки прозрачного шлюза: