Сведения о расширенных возможностях автономной работы устройств, модулей и дочерних устройств IoT Edge
Область применения: IoT Edge 1.1
Внимание
Дата окончания поддержки IoT Edge 1.1 была 13 декабря 2022 г. Чтобы получить сведения о поддержке определенного продукта, службы, технологии или API, перейдите на страницу Политика жизненного цикла поддержки Майкрософт. Дополнительные сведения об обновлении до последней версии IoT Edge см. в разделе "Обновление IoT Edge".
Azure IoT Edge поддерживает расширенные автономные операции на устройствах IoT Edge и включает автономные операции на подчиненных устройствах. Если у устройства IoT Edge есть одна возможность подключиться к Центр Интернета вещей, это устройство и любые подчиненные устройства могут продолжать работать с периодическим подключением к Интернету.
Принцип работы
Когда устройство IoT Edge переходит в автономный режим, центр IoT Edge выполняет три роли. Во-первых, он хранит все сообщения, которые необходимо отправить, до тех пор, пока соединение с устройством не будет восстановлено. Во-вторых, он действует от имени Центр Интернета вещей для проверки подлинности модулей и подчиненных устройств, чтобы они могли продолжать работать. В-третьих, он обеспечивает обмен данными между подчиненными устройствами, которые обычно проходят через Центр Интернета вещей.
В следующем примере показано, как IoT Edge работает в автономном режиме:
Настройка устройств
Функция автономной работы включена на устройствах IoT Edge автоматически. Чтобы расширить эту возможность на других устройствах, необходимо настроить подчиненные устройства для доверия к назначенному родительскому устройству и маршрутизации обмена данными между устройствами через родительский в качестве шлюза.
Синхронизация с центром Интернета вещей
Хотя бы один раз после установки среды выполнения IoT Edge необходимо подключить устройство IoT Edge к сети для синхронизации с центром Интернета вещей. В этой синхронизации устройство IoT Edge получает сведения о всех подчиненных устройствах, назначенных ему. Устройство IoT Edge безопасно обновляет свой локальный кэш, чтобы можно было продолжать работу автономно, и извлекает параметры для локального хранения сообщений телеметрии.
Переход в автономный режим
При отключении от Центр Интернета вещей устройство IoT Edge, развернутые модули и любые подчиненные устройства могут работать бесконечно. Модули и подчиненные устройства могут запускаться и перезапускаться, выполняя проверку подлинности с помощью Центра IoT Edge в автономном режиме. Восходящий поток телеметрии в центр Интернета вещей хранится локально. Обмен данными между модулями или между подчиненными устройствами поддерживается с помощью прямых методов или сообщений.
Повторное подключение и синхронизация с Центром Интернета вещей
После восстановления связи с центром Интернета вещей устройство IoT Edge будет снова синхронизировано. Сообщения, которые хранятся локально, немедленно доставляются в Центр Интернета вещей, однако они зависят от скорости подключения, задержки Центра Интернета вещей и иных сопутствующих факторов. Локально хранимые сообщения доставляются в том же порядке, в котором они были сохранены.
Все различия между требуемыми и сообщаемыми свойствами модулей и устройств будут согласованы. Устройство IoT Edge обновляет все изменения в наборе назначенных нижестоящих устройств.
Ограничения
Расширенные возможности автономной работы, описанные в этой статье, доступны в IoT Edge 1.0.7 или более поздней версии. Более ранние версии имеют подмножество автономных функций. Существующие устройства IoT Edge без расширенных возможностей автономной работы невозможно обновить, изменив версию среды выполнения. Необходимо изменить их конфигурацию с использованием нового удостоверения устройства IoT Edge, чтобы использовать эти функции.
Только устройства, отличные от IoT Edge, можно добавлять как подчиненные устройства.
Устройства IoT Edge и их назначенные подчиненные устройства могут неограниченное время работать в автономном режиме после первой однократной синхронизации. Однако хранение сообщений зависит от срока жизни (TTL) и доступного места на диске для хранения сообщений.
EdgeAgent устройства обновляет свои сообщаемые свойства всякий раз, когда происходит изменение состояния развертывания, например новое или неудачное развертывание. Если устройство находится в автономном режиме, EdgeAgent не может сообщать о состоянии портал Azure. Таким образом, состояние устройства на портале Azure может оставаться 200 OK, если устройство IoT Edge не подключено к Интернету.
Настройка родительских и дочерних устройств
По умолчанию родительское устройство может содержать до 100 дочерних элементов. Это ограничение можно изменить, задав переменную среды MaxConnectedClients в модуле edgeHub. Дочернее устройство имеет только одно родительское устройство.
Примечание.
Нижестоящему устройству выдаются данные непосредственно в Интернет или на устройства шлюза (с поддержкой IoT Edge или нет). Дочернее устройство может быть подчиненным устройством или устройством шлюза в вложенной топологии.
Подчиненные устройства могут быть любыми устройствами, не зарегистрированными в IoT Edge, в том же Центр Интернета вещей.
Если вы не знаете, как создать отношения "родители — потомки" между устройством IoT Edge и устройством IoT, см. статью Проверка подлинности подчиненного устройства в Центре Интернета вещей Azure. В разделах о симметричном ключе, самозаверяющем сертификате X.509 и подписанном ЦС сертификате X.509 приводятся примеры использования портала Azure и Azure CLI для определения отношений "родители — потомки" при создании устройств. Для существующих устройств можно объявить отношение на странице сведений о родительском или дочернем устройстве.
Настройка родительского устройства в качестве шлюза
Отношение "родители — потомки" можно рассматривать как прозрачный шлюз, где дочернее устройство использует собственное удостоверение в центре Интернета вещей, но обмен данными осуществляет в облаке через свое родительское устройство. Для безопасного взаимодействия дочернее устройство должно иметь возможность убедиться в том, что родительское устройство поступает из надежного источника. В противном случае сторонние устройства могут настроить вредоносные устройства, которые имитируют родительские устройства и перехватывают данные.
Один из способов создания такого отношения доверия подробно описан в следующих статьях.
- Настройка устройства IoT Edge для использования в качестве прозрачного шлюза
- Connect a downstream (child) device to an Azure IoT Edge gateway (Подключение подчиненного (дочернего) устройства к шлюзу Azure IoT Edge)
Указание DNS-серверов
Чтобы повысить надежность, настоятельно рекомендуется указать адреса DNS-серверов, используемые в вашей среде. Чтобы задать DNS-сервер для IoT Edge, см. разрешение модуля агента Edge сообщает о пустом файле конфигурации и не запускается модулей на устройстве в статье по устранению неполадок.
Дополнительные параметры автономной работы
Если устройства переведены в автономный режим, родительское устройство IoT Edge хранит все сообщения, отправляемые с устройства в облако, вплоть до восстановления подключения. Модуль центра IoT Edge управляет хранением и пересылкой сообщений в автономном режиме. Для устройств, которые могут находиться в автономном режиме в течение продолжительного периода времени, необходимо оптимизировать производительность, настроив два параметра центра IoT Edge.
Во-первых, увеличьте время жизни данных, чтобы центр IoT Edge сохранял сообщения в течение достаточно долгого периода вплоть до восстановления подключения устройства. Затем добавьте дополнительное место на диске для хранения сообщений.
Срок жизни
Срок жизни — это период времени (в секундах), в течение которого сообщение ожидает доставки, прежде чем срок его действия истечет. По умолчанию это 7200 секунд (два часа). Максимальное значение ограничено только максимальным значением целочисленной переменной (приблизительно 2 000 000 000).
Этот параметр является требуемым свойством центра IoT Edge, которое хранится в двойнике модуля. Можно указать эти значения на портале Azure или непосредственно в манифесте развертывания.
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.0",
"routes": {},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
}
Хранилище узлов для системных модулей
Сообщения и сведения о состоянии модуля по умолчанию хранятся в локальной файловой системе контейнера IoT Edge. Для повышения надежности, особенно при работе в автономном режиме, можно также выделить хранилище на узле устройства IoT Edge. Дополнительные сведения см. в разделе Предоставление модулям доступа к локальному хранилищу устройства.
Следующие шаги
Дополнительные сведения о настройке прозрачного шлюза для подключения родительских и дочерних устройств
- Настройка устройства IoT Edge для использования в качестве прозрачного шлюза
- Аутентификация подчиненного устройства в Центре Интернета вещей
- Connect a downstream device to an Azure IoT Edge gateway (Подключение подчиненного устройства к шлюзу Azure IoT Edge)