Поделиться через


Краткое руководство. Развертывание первого модуля IoT Edge на устройстве Windows

Применимо к:IoT Edge 1.5 флажок IoT Edge 1.5

Внимание

IoT Edge 1.5 LTS — это поддерживаемый выпуск. IoT Edge 1.4 LTS достиг срока окончания службы 12 ноября 2024 года. Если вы используете более ранний выпуск, ознакомьтесь с Update IoT Edge.

Попробуйте Azure IoT Edge в этом кратком руководстве, развернув контейнеризованный код в Linux на устройстве Windows IoT Edge. 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, создайте учетную запись free перед началом работы.

Предварительные требования

Подготовьте среду для Azure CLI.

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

az group create --name IoTEdgeResources --location westus2

Убедитесь, что устройство IoT Edge соответствует следующим требованиям:

  • Требования к системе

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise) 1 Windows 10 минимальной сборки 17763 со всеми текущими накопительными обновлениями, установленными.
  • Требования к аппаратному обеспечению

    • Минимальная бесплатная память: 1 ГБ
    • Минимальное свободное место на диске: 10 ГБ

Создание Центра Интернета вещей

Начните с создания Центра Интернета вещей с помощью Azure CLI.

Схема, на которой показан шаг создания центра Интернета вещей.

Бесплатный уровень Azure IoT Hub подходит для этого краткого руководства. Если вы ранее использовали IoT Hub и уже имели концентратор, можно использовать этот IoT hub.

При помощи следующего кода создается бесплатный центр 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.

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

IoT Edge устройства ведут себя и могут управляться по-разному, чем типичные устройства Интернета вещей. Используйте флаг --edge-enabled, чтобы объявить, что это удостоверение предназначено для устройства IoT Edge.

  1. В Azure Cloud Shell введите следующую команду, чтобы создать устройство с именем myEdgeDevice в центре.

    az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name {hub_name}
    

    Если возникает ошибка о ключах политики iothubowner, убедитесь, что Cloud Shell выполняет последнюю версию расширения Azure IoT.

  2. Просмотрите строку подключения для устройства, которая связывает физическое устройство с его удостоверением в IoT Hub. Она содержит имя центра Интернета вещей и имя устройства, а также общий ключ, который используется для аутентификации подключений между ними.

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
    
  3. Скопируйте значение ключа connectionString из выходных данных JSON и сохраните его. Это значение — строка подключения устройства. Используйте его для настройки среды выполнения IoT Edge в следующем разделе.

    Например, connection string должен выглядеть примерно так, как HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE_SHARED_ACCESS_KEY>.

Установка и запуск среды выполнения IoT Edge

Установите IoT Edge для Linux на Windows на вашем устройстве и настройте его с помощью строки подключения устройства.

Схема, на которую показан шаг запуска среды выполнения I o T Edge.

Выполните следующие команды PowerShell на целевом устройстве, где необходимо развернуть Azure IoT Edge для Linux в Windows. Для развертывания на удаленном целевом устройстве с помощью PowerShell используйте удаленный сеанс PowerShell, чтобы установить подключение к удаленному устройству и выполнить эти команды удаленно на таком устройстве.

  1. В сеансе PowerShell с повышенными привилегиями выполните следующую команду, чтобы включить Hyper-V. Дополнительные сведения см. в разделе Hyper-V Windows 10.

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
    
  2. В сеансе PowerShell с повышенными привилегиями выполните каждую из следующих команд, чтобы скачать IoT Edge для Linux в Windows.

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_LTS_ARM64" -OutFile $msiPath
      
  3. Установите IoT Edge для Linux на Windows на устройстве.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    
  4. Задайте политику выполнения на целевом устройстве AllSigned, если она еще не задана. Текущая политика выполнения можно проверить в командной строке PowerShell с повышенными привилегиями с помощью следующего:

    Get-ExecutionPolicy -List
    

    Если политика выполнения local machine не равна AllSigned, установите политику выполнения с помощью следующей команды:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  5. Создайте развертывание IoT Edge для Linux на Windows.

    Deploy-Eflow
    
  6. Введите Y , чтобы принять условия лицензии.

  7. Введите O или R , чтобы включить или отключить необязательные диагностические данные в зависимости от вашего предпочтения. Успешное развертывание отображается на следующем рисунке.

    Скриншот, показывающий, что успешное развертывание приведет к появлению сообщения

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

    Provision-EflowVm -provisioningType ManualConnectionString -devConnString "<CONNECTION_STRING_HERE>"
    

Теперь настроено устройство IoT Edge. Оно готово для запуска модулей, развернутых в облаке.

Развертывание модуля

Управление устройством Azure IoT Edge из облака для развертывания модуля, который отправляет данные телеметрии в IoT Hub.

Схема, на которой показан шаг для развертывания модуля.

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

Модуль, который будет развернут в этом разделе, имитирует поведение датчика и отправляет сгенерированные данные. Этот модуль является полезным фрагментом кода при начале работы с IoT Edge, так как можно использовать имитированные данные для разработки и тестирования. Если вы хотите точно увидеть, что делает этот модуль, можно просмотреть исходный код датчика температуры симулированный датчик температуры.

Выполните следующие действия, чтобы развернуть первый модуль.

  1. Войдите на портал Azure и перейдите к IoT Hub.

  2. В меню слева выберите "Устройства" в меню "Управление устройствами ".

  3. Выберите код целевого устройства в списке устройств.

    Примечание.

    При создании нового устройства IoT Edge отображается код состояния 417 -- The device's deployment configuration is not set на портале Azure. Это состояние является нормальным и означает, что устройство готово к развертыванию модуля.

  4. На верхней панели выберите Настройка модулей.

    Выберите модули, которые необходимо запустить на устройстве. Вы можете выбрать из уже созданных модулей, модулей из реестра артефактов Майкрософт или модулей, созданных самостоятельно. В этом кратком руководстве вы развернете модуль из реестра артефактов Майкрософт.

  5. В разделе IoT Edge modules выберите Добавить, затем выберите IoT Edge Module.

  6. Обновите следующие параметры модуля:

    Настройки Значение
    Имя модуля Интернета вещей SimulatedTemperatureSensor
    URI образа mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest
    Политика перезапуска всегда
    Требуемое состояние работает
  7. Нажмите кнопку "Далее": маршруты для продолжения настройки маршрутов.

  8. Добавьте маршрут, который отправляет все сообщения из имитированного модуля температуры в IoT Hub.

    Настройки Значение
    Имя. SimulatedTemperatureSensorToIoTHub
    Значение FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
  9. Нажмите кнопку "Далее": проверка и создание.

  10. Просмотрите файл JSON, а затем щелкните Создать. JSON-файл определяет все модули, развернутые на устройстве IoT Edge.

    Примечание.

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

Когда вы укажете сведения о развертывании модуля, мастер вернет вас на страницу с подробными сведениями об устройстве. Проверьте состояние развертывания на вкладке Модули.

Вы должны видеть три модуля: $edgeAgent, $edgeHub и SimulatedTemperatureSensor. Если один или несколько модулей имеют Yes в разделе Указано в развертывании, но не в Сообщено устройством, устройство IoT Edge все равно запускает их. Подождите несколько минут и обновите страницу.

Снимок экрана, на котором показан параметр SimulatedTemperatureSensor в списке развернутых модулей.

Если у вас возникли проблемы с развертыванием модулей, см. устранение неполадок устройств IoT Edge на портале Azure.

Просмотр созданных данных

В этом кратком руководстве вы создали новое устройство IoT Edge и установили на нем среду выполнения IoT Edge. Затем вы использовали портал Azure для развертывания модуля IoT Edge для запуска на устройстве без необходимости вносить изменения в само устройство.

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

  1. Войдите в IoT Edge для Linux на виртуальной машине Windows с помощью следующей команды в сеансе PowerShell:

    Connect-EflowVm
    

    Примечание.

    Единственная учетная запись, которой разрешено подключение к виртуальной машине по протоколу SSH, — это учетная запись пользователя, который создал эту машину.

  2. После входа проверьте список запущенных модулей IoT Edge с помощью следующей команды Linux:

    sudo iotedge list
    

    Снимок экрана, где можно проверить выполнение датчика температуры, агента и модулей хаба.

  3. Просмотрите сообщения, отправленные из модуля датчика температуры в облако, с помощью следующей команды 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 установке с устройства, выполните следующие действия.

  1. Откройте Settings на Windows.
  2. Выберите Установка и удаление программ.
  3. Выберите приложение Azure IoT Edge.
  4. Выберите Удалить.

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

В этом кратком руководстве вы создали устройство IoT Edge и использовали облачный интерфейс Azure IoT Edge для развертывания кода на этом устройстве. В итоге вы получили устройство для тестирования, генерирующее необработанные данные о среде.

В следующем руководстве вы узнаете, как отслеживать действия и работоспособность устройства на портале Azure.