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

Область применения:IoT Edge 1.4 проверка mark IoT Edge 1.4

Внимание

IoT Edge 1.4 является поддерживаемым выпуском. Если вы используете более ранний выпуск, см. статью Обновление 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 в только что созданном Центре Интернета вещей.

Схема, на которую показано, как зарегистрировать устройство с удостоверением центра I o T.

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

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

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

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

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

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

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

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

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

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

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

Выполните эти шаги, чтобы развернуть первый модуль из Azure Marketplace:

  1. Войдите на портал Azure и перейдите к своему центру Интернета вещей.

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

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

    Примечание.

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

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

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

  5. В разделе Модули IoT Edge откройте раскрывающееся меню Добавить и выберите Модуль в Marketplace.

  6. В окне Модуль IoT Edge в Marketplace найдите и выберите модуль Simulated Temperature Sensor. Модуль добавится в раздел "Модули IoT Edge" с требуемым состоянием Выполняется.

  7. Нажмите кнопку "Далее": маршруты для продолжения настройки маршрутов.

    При добавлении модуля из Azure Marketplace создается маршрут с именем SimulatedTemperatureSensorToIoTHub . По этому маршруту в Центр Интернета вещей отправляются все сообщения из имитированного модуля температурного датчика.

  8. По завершении выберите Next: Отзыв и создание.

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

    Примечание.

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

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

На ней должны быть указаны три модуля: $edgeAgent, $edgeHub и SimulatedTemperatureSensor. Если один или несколько модулей имеют значение "Да" в разделе "Указано в развертывании ", но не в разделе "Сообщается по устройству", устройство 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 на устройстве, выполните следующие команды.

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

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

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

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