Развертывание виртуальной машины Linux с поддержкой IoT Edge
Чтобы проверить конфигурацию IoT Edge, необходимо развернуть среду выполнения IoT Edge на виртуальной машине (ВМ).
Перед развертыванием реальных устройств IoT Edge в хранилищах надо убедиться, что устройства будут работать должным образом. Чтобы протестировать сценарий, вы планируете развернуть среду выполнения IoT Edge на виртуальной машине Linux Azure, а затем развернуть на ней модули IoT Edge.
Здесь вы ознакомитесь с некоторыми основными понятиями, относящимися к IoT Edge, узнаете, как устройство IoT Edge подключается к приложению IoT Central и как IoT Central развертывает модули IoT Edge в среде выполнения IoT Edge.
Что такое среда выполнения IoT Edge?
Среда выполнения Azure IoT Edge позволяет использовать настраиваемую и облачную логику на устройствах IoT Edge. Эта среда выполнения размещается на устройстве IoT Edge. В ней выполняются операции управления и взаимодействия. Среда выполнения:
- установка и обновление рабочих нагрузок на устройстве;
- поддержание стандартов безопасности Azure IoT Edge на устройстве;
- поддержание рабочего состояния модулей IoT Edge;
- передача данных о состоянии работоспособности модуля в облако для удаленного мониторинга;
- Управляет взаимодействием между подчиненными устройствами и устройством IoT Edge между модулями на устройстве IoT Edge, между устройством IoT Edge и облаком и между устройствами IoT Edge.
Что такое модули IoT Edge?
Модули IoT Edge — это единицы выполнения, которые выполняют бизнес-логику на границе. Модули реализуются как контейнеры, совместимые с Docker. Можно настроить взаимодействие нескольких модулей, создав конвейер обработки данных. Вы можете разрабатывать пользовательские модули или упаковывать определенные службы Azure в модули для предоставления информации в автономном режиме и на пограничном устройстве. Поскольку модули выполняются в контейнерах Docker, они ведут себя так же, как если бы их установили на ВМ или реальном устройстве.
Следующий урок посвящен установке среды выполнения IoT Edge и развертыванию пользовательского модуля, собирающего данные об окружающей среде для отправки в IoT Central. После этого оператор IoT Central может отслеживать условия окружающей среды в хранилищах, просматривая данные телеметрии на панелях мониторинга в приложении.
Как устройство IoT Edge подключается к IoT Central?
Устройства IoT Edge, как и другие устройства, используйте службу подготовки устройств Центр Интернета вещей (DPS) для подключения к приложению IoT Central. В предыдущем уроке при добавлении устройства в приложение IoT Central вы запишите идентификатор область, идентификатор устройства и ключ устройства. Эти значения добавляются в файл конфигурации IoT Edge на устройстве IoT Edge. Соответствующий раздел этого ФАЙЛА TOML выглядит следующим образом. registration_id
— это код устройства.
[provisioning]
source = "dps"
global_endpoint = "https://global.azure-devices-provisioning.net"
id_scope = "YOUR_ID_SCOPE"
[provisioning.attestation]
method = "symmetric_key"
registration_id = "YOUR_DEVICE_ID"
symmetric_key = { value = "YOUR_DEVICE_KEY" }
На следующем уроке файл конфигурации редактируется при помощи скрипта развертывания для устройства IoT Edge.
Как IoT Central развертывает модули в среде выполнения IoT Edge?
На предыдущем уроке вы отправили манифест развертывания в шаблон при создании шаблона устройства для датчика окружающей среды. Когда среда выполнения IoT Edge подключается к приложению IoT Central, она скачивает манифест развертывания. Среда выполнения использует сведения в манифесте развертывания, чтобы определить, какие модули устанавливать и как их настраивать. Модули загружаются из реестра контейнеров, например Реестра контейнеров Azure или Docker Hub.
Используемый манифест развертывания устанавливает два необходимых системных модуля (edgeAgent
и edgeHub
) и пользовательский модуль SimulatedTemperatureSensor
. Этот пользовательский модуль отправляет данные телеметрии об окружающей среде и машине в IoT Central и располагает двумя свойствами (SendData и SendInterval), которые оператор может использовать для настройки модуля.
{
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.0",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.4",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
"createOptions": "{}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4.6",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.0",
"routes": {
"route": "FROM /* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 10
}
}
}
}