Краткое руководство. Развертывание первого модуля IoT Edge на устройстве Windows
Область применения: 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 с помощью этого краткого руководства, развернув контейнерный код в Linux на устройстве IoT Edge с Windows. IoT Edge позволяет удаленно управлять кодом на устройствах, чтобы вы могли передавать больше рабочих нагрузок на пограничные устройства. В этом кратком руководстве мы рекомендуем использовать собственное клиентское устройство Windows, чтобы узнать, насколько легко использовать Azure IoT Edge для Linux в Windows. Если вы хотите использовать Windows Server или виртуальную машину Azure для создания развертывания, выполните действия, описанные в руководстве по установке и подготовке Azure IoT Edge для Linux на устройстве с Windows.
В этом кратком руководстве описано следующее:
- Создайте Центр Интернета вещей.
- Регистрация устройства IoT Edge в Центре Интернета вещей.
- Установка и запуск среды выполнения IoT Edge для Linux в Windows на устройстве.
- Удаленное развертывание модуля на устройстве IoT Edge и отправка телеметрии.
В этом кратком руководстве объясняется, как настроить Azure IoT Edge для Linux на устройстве Windows. Затем на портале Azure вы развернете модуль для устройства. Модуль, который вы будете использовать, — это имитированный датчик, генерирующий данные температуры, влажности и давления. В других руководствах по Azure IoT Edge используются наработки из этой статьи: развернутые модули, которые анализируют смоделированные данные для бизнес-аналитики.
Если у вас нет активной подписки Azure, перед началом работы создайте бесплатную учетную запись.
Необходимые компоненты
Подготовьте среду к работе с Azure CLI.
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Создайте облачную группу ресурсов для управления всеми ресурсами, которые вы используете в этом кратком руководстве.
az group create --name IoTEdgeResources --location westus2
Убедитесь, что устройство IoT Edge соответствует следующим требованиям:
Требования к системе
- Windows 101/11 (Pro, Enterprise, IoT Enterprise) 1 минимальная сборка Windows 17763 со всеми текущими накопительными обновлениями.
Требования к аппаратному обеспечению
- Минимальная свободная память: 1 ГБ
- Минимальный объем свободного места на диске: 10 ГБ
Создание Центра Интернета вещей
Начните с создания центра Интернета вещей с помощью Azure CLI.
Для целей этого руководства можно использовать бесплатный уровень Центра Интернета вещей Azure. Если у вас уже есть центр Интернета вещей, который вы использовали ранее, вы можете продолжить работу с ним.
При помощи следующего кода создается бесплатный центр F1 в группе ресурсов IoTEdgeResources
. Замените {hub_name}
уникальным именем центра Интернета вещей. Создание Центра Интернета вещей может занять несколько минут.
az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2
Если отобразится сообщение об ошибке с уведомлением о том, что в вашей подписке уже имеется один бесплатный центр, измените номер SKU на S1
. Если отобразится сообщение об ошибке с уведомлением о том, что имя центра недоступно, кто-то уже создал центр Интернета вещей с таким именем. Выберите другое имя.
Регистрация устройства IoT Edge
Зарегистрируйте устройство IoT Edge в только что созданном Центре Интернета вещей.
Создайте удостоверение для своего имитированного устройства, чтобы оно могло обмениваться данными с Центром Интернета вещей. Удостоверение устройства находится в облаке. Чтобы связать физическое устройство с удостоверением, нужно использовать уникальную строку подключения к устройству.
Устройства IoT Edge работают и могут управляться иначе, чем обычные устройства Интернета вещей. Используйте флаг --edge-enabled
, чтобы объявить это удостоверение как удостоверение для устройства IoT Edge.
Чтобы создать устройство с именем myEdgeDevice в своем центре, введите следующую команду в Azure Cloud Shell.
az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name {hub_name}
Если отобразится сообщение об ошибке при использовании ключей политики
iothubowner
, убедитесь, что в Cloud Shell установлена последняя версия расширения Интернета вещей Azure.Просмотрите строку подключения для устройства, которая связывает физическое устройство с его удостоверением в Центре Интернета вещей. Она содержит имя центра Интернета вещей и имя устройства, а также общий ключ, который используется для аутентификации подключений между ними.
az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
Скопируйте значение ключа
connectionString
из выходных данных JSON и сохраните его. Это значение — строка подключения устройства. Это значение потребуется для настройки среды выполнения IoT Edge в следующем разделе.Например, строка подключения должны выглядеть примерно так
HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE_SHARED_ACCESS_KEY>
.
Установка и запуск среды выполнения IoT Edge
Установите IoT Edge для Linux в Windows на своем устройстве и настройте эту службу, используя строку подключения устройства.
Выполните приведенные ниже команды PowerShell на целевом устройстве, где требуется развернуть Azure IoT Edge для Linux в Windows. Для развертывания на удаленном целевом устройстве с помощью PowerShell используйте удаленный сеанс PowerShell, чтобы установить подключение к удаленному устройству и выполнить эти команды удаленно на таком устройстве.
В сеансе PowerShell с повышенными привилегиями выполните следующую команду, чтобы включить Hyper-V. Дополнительные сведения см . в Hyper-V в Windows 10.
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
В сеансе PowerShell с повышенными привилегиями выполните каждую из следующих команд, чтобы скачать IoT Edge для Linux в Windows.
X64/AMD64
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi')) $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
ARM64
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi')) $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
Установите IoT Edge для Linux на Windows на ваше устройство.
Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
На целевом устройстве задайте политику выполнения
AllSigned
, если она еще не задана. Проверить текущую политику выполнения в командной строке PowerShell с повышенными привилегиями можно, выполнив следующую команду:Get-ExecutionPolicy -List
Если политика выполнения
local machine
неAllSigned
, можно установить политику выполнения с помощью следующей команды:Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
Создание развертывания IoT Edge для Linux в Windows.
Deploy-Eflow
Введите "Y", чтобы принять условия лицензии.
Введите "O" или "R" для включения или отключения передачи Необязательных диагностических данных в зависимости от ваших предпочтений. Успешное развертывание показано ниже.
Укажите строку подключения к устройству, полученную при работе с предыдущим разделом. Замените текст заполнителя на собственное значение.
Provision-EflowVm -provisioningType ManualConnectionString -devConnString "<CONNECTION_STRING_HERE>"
Теперь устройство IoT Edge настроено. Оно готово для запуска модулей, развернутых в облаке.
Развертывание модуля
Управляя устройством Azure IoT Edge из облака, разверните модуль, который будет передавать данные телеметрии в Центр Интернета вещей.
Одной из ключевых возможностей Azure IoT Edge является развертывание кода на устройствах IoT Edge из облака. Модули IoT Edge — это выполняемые пакеты, которые реализованы в виде контейнеров. В этом разделе вы развернете предварительно созданный модуль из раздела "Модули IoT Edge" Реестр артефактов Microsoft.
Модуль, который будет развернут в этом разделе, имитирует поведение датчика и отправляет сгенерированные данные. Данный модуль является требуемой частью кода для начала работы с IoT Edge, так как сгенерированные данные вы можете использовать для разработки и тестирования. Если требуется увидеть полный функционал модуля, см. имитированный исходный код датчика температуры здесь.
Выполните следующие действия, чтобы развернуть первый модуль.
Войдите в портал Azure и перейдите к Центр Интернета вещей.
В меню слева выберите "Устройства" в меню "Управление устройствами ".
Выберите код целевого устройства в списке устройств.
Примечание.
При создании нового устройства IoT Edge отобразится код состояния
417 -- The device's deployment configuration is not set
на портале Azure. Это состояние является нормальным и означает, что устройство готово к развертыванию модуля.На верхней панели выберите Задание модулей.
Выберите модули, которые необходимо запустить на устройстве. Вы можете выбрать из уже созданных модулей, модулей из Реестр артефактов Microsoft или модулей, созданных самостоятельно. В этом кратком руководстве вы развернете модуль из Реестр артефактов Microsoft.
В разделе модулей IoT Edge выберите "Добавить", а затем выберите "Модуль IoT Edge".
Обновите следующие параметры модуля:
Параметр Значение Имя модуля Интернета вещей SimulatedTemperatureSensor
URI образа mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest
Политика перезапуска всегда Требуемое состояние выполняется Нажмите кнопку "Далее": маршруты для продолжения настройки маршрутов.
Добавьте маршрут, который отправляет все сообщения из имитированного модуля температуры в Центр Интернета вещей.
Параметр Значение Имя. SimulatedTemperatureSensorToIoTHub
Значение FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
По завершении выберите Next: Отзыв и создание.
Просмотрите файл JSON, а затем щелкните Создать. В файле JSON определены все модули, развертываемые на устройстве IoT Edge.
Примечание.
После отправки нового развертывания на устройство IoT Edge на ваше устройство ничего отправляться не будет. Вместо этого устройство регулярно выполняет запрос к Центру Интернета вещей для получения новых сведений. Если устройство обнаруживает обновленный манифест развертывания, оно использует информацию о новом развертывании для получения образов модуля с облака с последующим локальным запуском модулей. Этот процесс может занять несколько минут.
Когда вы укажете сведения о развертывании модуля, мастер вернет вас на страницу с подробными сведениями об устройстве. Проверьте состояние развертывания на вкладке Модули.
На ней должны быть указаны три модуля: $edgeAgent, $edgeHub и SimulatedTemperatureSensor. Если один или несколько модулей имеют значение "Да" в разделе "Указано в развертывании ", но не в разделе "Сообщается по устройству", устройство IoT Edge по-прежнему запускает их. Подождите несколько минут и обновите страницу.
Если у вас возникли проблемы с развертыванием модулей, см. статью "Устранение неполадок устройств IoT Edge из портал Azure".
Просмотр созданных данных
В этом руководстве мы создали новое устройство IoT Edge и установили на нем среду выполнения IoT Edge. Затем с помощью портала Azure мы развернули модуль IoT Edge на устройстве, обеспечив возможность запуска без необходимости менять настройки на устройстве.
Отправленный модуль создает примеры данных среды, которые можно использовать для последующего тестирования. Имитируемый датчик выполняет мониторинг оборудования и окружающей среды. Например, этот датчик может быть в серверной комнате, производственном цехе или ветроэлектрической установке. Он отправляет сообщения, которые содержат данные о температуре и влажности окружающей среды, температуре и давлении оборудования, а также метки времени. При работе с руководствами по IoT Edge используйте данные, созданные этим модулем, как тестовые данные для аналитики.
Войдите на виртуальную машину IoT Edge для Linux в Windows, выполнив следующую команду в сеансе PowerShell:
Connect-EflowVm
Примечание.
Единственная учетная запись, которой разрешено подключение к виртуальной машине по протоколу SSH, — это учетная запись пользователя, который создал эту машину.
После входа можно проверить список выполняющихся модулей IoT Edge с помощью следующей команды Linux:
sudo iotedge list
Используя следующую команду Linux, убедитесь, что сообщения отправляются с модуля датчика температуры в облако:
sudo iotedge logs SimulatedTemperatureSensor -f
Совет
В командах IoT Edge при использовании имен модулей учитывается регистр.
Очистка ресурсов
Если вы хотите продолжить работу с руководствами по IoT Edge, пропустите этот шаг. Вы можете использовать устройство, зарегистрированное и настроенное при работе с этим кратким руководством. Если нет, вы можете удалить созданные ресурсы Azure, чтобы избежать расходов.
Если вы создали виртуальную машину и Центр Интернета вещей в новой группе ресурсов, можно удалить эту группу и все связанные с ней ресурсы. Если вы не хотите удалять всю группу, можно удалить отдельные ресурсы.
Внимание
Проверьте содержимое группы ресурсов. В ней не должно быть важных ресурсов. Удаление группы ресурсов — процесс необратимый.
Используйте следующую команду, чтобы удалить группу IoTEdgeResources. Это действие может выполняться несколько минут.
az group delete --name IoTEdgeResources
Чтобы проверить, удалена ли группа ресурсов, просмотрите список групп ресурсов с помощью этой команды:
az group list
Удаление IoT Edge для Linux в Windows
Если вы хотите удалить Azure IoT Edge для Linux на устройстве, выполните следующие команды.
- Открытие параметров в Windows
- Выберите "Добавить или удалить программы"
- Выбор приложения Azure IoT Edge
- Выберите "Удалить"
Следующие шаги
При работе с этим кратким руководством вы создали устройство IoT Edge и с помощью облачного интерфейса Azure IoT Edge развернули код на устройстве. В итоге вы получили устройство для тестирования, генерирующее необработанные данные о среде.
В следующем руководстве вы узнаете, как отслеживать активность и работоспособность устройства на портале Azure.