Общие сведения о модулях Azure IoT Edge
Область применения: IoT Edge 1.5 IoT Edge 1.4
Внимание
Поддерживаются выпуски IoT Edge 1.5 LTS и IoT Edge 1.4 LTS. IoT Edge 1.4 LTS заканчивается жизнью 12 ноября 2024 года. Если вы используете более ранний выпуск, см. статью Обновление IoT Edge.
Azure IoT Edge позволяет развертывать модули бизнес-логики на пограничных устройствах и управлять этими модулями. Модуль Azure IoT Edge представляет собой наименьшую единицу вычислительных ресурсов, которыми управляет IoT Edge. Эти модули могут содержать службы Azure (например, Azure Stream Analytics) или пользовательский код для конкретного решения. Чтобы понять, как разрабатываются, развертываются и обслуживаются модули, мы рассмотрим четыре концептуальных элемента.
- Образ модуля — это пакет с программным обеспечением для модуля.
- Экземпляр модуля — это единица вычислительных ресурсов, выполняющая образ модуля на устройстве IoT Edge. Экземпляр модуля запускается средой выполнения IoT Edge.
- Удостоверение модуля — это часть сведений (включая учетные данные безопасности), хранящиеся в Центр Интернета вещей, связанной с каждым экземпляром модуля.
- Двойник модуля — это документ JSON, хранящийся в Центр Интернета вещей, содержащий сведения о состоянии для экземпляра модуля, включая метаданные, конфигурации и условия.
Образы и экземпляры модулей
Образы модулей IoT Edge содержат приложения, в которых используются функции управления, безопасности и обмена данными среды выполнения IoT Edge. Вы можете создавать собственные образы модулей или экспортировать их из поддерживаемых служб Azure, таких как Azure Stream Analytics. Образы существуют в облаке, и вы можете обновлять их, изменять и развертывать в разных решениях. Например, существует отдельный модуль, который прогнозирует мощность производственной линии с применением технологий машинного обучения, и другой модуль, который использует компьютерное зрение для управления дроном.
Каждый раз, когда среда выполнения IoT Edge запускает развернутый на устройстве образ модуля, она создает новый экземпляр этого модуля. Два устройства в разных частях света могут использовать тот же образ модуля. Тем не менее каждое устройство будет иметь свой собственный экземпляр модуля при запуске модуля на устройстве.
На практике образы модулей существуют как образы контейнеров в хранилище данных, а экземпляры модулей реализованы как контейнеры на устройствах.
Удостоверения модулей
Когда в среде выполнения IoT Edge создается новый экземпляр модуля, он сопоставляется с идентификатором модуля. Идентификатор модуля хранится в Центре Интернета вещей и используется как область адресации и безопасности для всех локальных и облачных взаимодействий с этим экземпляром модуля.
Имя идентификатора составляется из идентификатора устройства, на котором запущен этот экземпляр, и имени модуля, указанного в вашем решении. Например, когда вы вызываете модуль insight
, в котором используется Azure Stream Analytics, и развертываете его на устройстве Hannover01
, среда выполнения IoT Edge создает для него идентификатор модуля с именем /devices/Hannover01/modules/insight
.
Иногда нужно развернуть один образ модуля несколько раз на одном устройстве. В таком случае для экземпляров будут использоваться разные имена.
Двойники модулей
С каждым экземпляром модуля сопоставлен определенный двойник модуля, который применяется для настройки экземпляра. Экземпляр и двойник связаны друг с другом через идентификатор модуля.
Двойник модуля представляет собой документ JSON, в котором собраны сведения о модуле и параметры его конфигурации. Эта концепция работает так же, как и двойник устройства в Центре Интернета вещей. Структура двойника модуля идентична структуре двойника устройства. Для взаимодействия с двойниками обоих типов используются одни и те же API-интерфейсы. Единственное различие между ними — идентификатор, который применяется для создания экземпляра клиентского пакета SDK.
// Create a ModuleClient object. This ModuleClient will act on behalf of a
// module since it is created with a module’s connection string instead
// of a device connection string.
ModuleClient client = new ModuleClient.CreateFromEnvironmentAsync(settings);
await client.OpenAsync();
// Get the module twin
Twin twin = await client.GetTwinAsync();
Возможности автономной работы
Модули Azure IoT Edge могут работать автономно неограниченно долго, если синхронизация с Центром Интернета вещей выполнялась хотя бы один раз. Устройства IoT Edge также могут расширить возможность автономной работы на другие устройства IoT. Дополнительные сведения см. в статье "Общие сведения о расширенных автономных возможностях для устройств IoT Edge, модулей и подчиненных устройств".