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


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

Применимо к: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 в этом кратком руководстве, развернув контейнерный код на виртуальном устройстве IoT Edge Linux. IoT Edge позволяет удаленно управлять кодом на ваших устройствах, чтобы вы могли передавать больше рабочих процессов на периферию. В этом быстром старте используйте виртуальную машину Azure для устройства IoT Edge. Он позволяет быстро создать тестовую машину и удалить ее после завершения.

Из этого краткого руководства вы узнаете, как:

  • Создайте IoT Hub.
  • Зарегистрируйте устройство IoT Edge в Центре Интернета вещей.
  • Установите и запустите среду выполнения IoT Edge на виртуальном устройстве.
  • Удаленное развертывание модуля на устройстве IoT Edge.

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

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

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

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

Настройте среду для Azure CLI.

Группа ресурсов для управления всеми ресурсами, которые вы используете в этом кратком руководстве. В этом кратком руководстве и следующих руководствах используется пример имени группы ресурсов IoTEdgeResources.

az group create --name IoTEdgeResources --location westus2

Создание IoT Hub

Начните краткое руководство, создав IoT Hub с помощью Azure CLI.

Diagram, показывающий, как создать IoT Hub в cloud.

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

При помощи следующего кода создается бесплатный центр F1 в группе ресурсов IoTEdgeResources. Замените <hub-name> уникальным именем для IoT Hub. Создание IoT Hub может занять несколько минут.

az iot hub create --resource-group IoTEdgeResources --name <hub-name> --sku F1 --partition-count 2

Если вы получите ошибку из-за того, что в вашей подписке уже есть один бесплатный IoT Hub, измените SKU на S1. В подписке может быть только один бесплатный Центр Интернета вещей. Если вы получите сообщение об ошибке о том, что имя IoT Hub недоступно, это означает, что другой пользователь уже имеет концентратор с таким именем. Выберите другое имя.

Регистрация устройства IoT Edge

Зарегистрируйте устройство IoT Edge в только что созданном центре Интернета вещей.

Схема регистрации устройства с идентификатором IoT Hub.

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

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

  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. Проверьте connection string для вашего устройства, который связывает физическое устройство с его идентификацией в IoT Hub. Он содержит имя IoT Hub, имя устройства и общий ключ, который проверяет подлинность подключений между ними. Эта строка подключения снова используется в следующем разделе, чтобы настроить устройство IoT Edge.

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <hub-name>
    

    Например, строка подключения должна выглядеть примерно так, как HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE-SHARED-ACCESS-KEY>.

Настройка устройства IoT Edge

Создайте виртуальную машину с помощью среды выполнения Azure IoT Edge.

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

Среда выполнения IoT Edge развертывается на всех IoT Edge устройствах и содержит три компонента. Демон безопасности IoT Edge запускается каждый раз при включении устройства IoT Edge и инициализирует устройство, запуская агент IoT Edge. Агент IoT Edge упрощает развертывание и мониторинг модулей на устройстве IoT Edge, включая центр IoT Edge. Концентратор IoT Edge управляет взаимодействием между модулями на устройстве IoT Edge и между устройством и IoT Hub.

Во время конфигурации среды выполнения укажите строку подключения устройства. Эта строка извлекается из Azure CLI. Эта строка связывает физическое устройство с удостоверением устройства IoT Edge в Azure.

Развертывание устройства IoT Edge

В этом разделе используется шаблон Azure Resource Manager для создания новой виртуальной машины и установки среды выполнения IoT Edge на ней. Если вы хотите использовать собственное устройство Linux, можно выполнить действия по установке в Вручную подготовьте одно устройство Linux IoT Edge, а затем вернитесь к этому быстрому руководству.

Используйте команду Deploy для Azure или команд CLI для создания устройства IoT Edge на основе предварительно созданного шаблона iotedge-vm-deploy.

  • Развертывание с помощью шаблона IoT Edge Azure Resource Manager.

    Развернуть в Azure

  • Для пользователей bash или Cloud Shell скопируйте следующую команду в текстовый редактор, замените текст заполнителя вашими сведениями, а затем скопируйте его в окно bash или Cloud Shell:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \
    --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' \
    --parameters adminUsername='azureUser' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
    
  • Пользователям PowerShell нужно скопировать следующую команду в окно PowerShell, а затем заменить текст заполнителя своими данными:

    az deployment group create `
    --resource-group IoTEdgeResources `
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" `
    --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' `
    --parameters adminUsername='azureUser' `
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) `
    --parameters authenticationType='password' `
    --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
    

Этот шаблон принимает следующие параметры:

Параметр Описание
resource-group Группа ресурсов, в которой создаются ресурсы. Используйте имя по умолчанию IoTEdgeResources, которое применяется в этой статье, или укажите имя существующей группы ресурсов в подписке.
template-uri Указатель на шаблон Resource Manager, который мы используем.
dnsLabelPrefix Строка, используемая для создания имени узла виртуальной машины. Замените текст-заполнитель именем вашей виртуальной машины.
adminUsername Имя пользователя для учетной записи администратора виртуальной машины. Используйте пример azureUser или укажите новое имя пользователя.
deviceConnectionString Строка подключения из устройства удостоверения в IoT Hub, которая используется для настройки среды выполнения IoT Edge на виртуальной машине. В этом параметре команда CLI извлекает строку подключения для вас. Замените текст заполнителя именем центра Интернета вещей.
тип аутентификации Метод аутентификации для учетной записи администратора. В этом кратком руководстве используется аутентификация на основе пароля, но для этого параметра также можно задать значение sshPublicKey.
adminPasswordOrKey Пароль или значение ключа SSH для учетной записи администратора. Замените текст заполнителя надежным паролем. Пароль должен содержать не менее 12 символов и содержать три из четырех типов следующих символов: строчные буквы, прописные буквы, цифры и специальные символы.

После завершения развертывания выходные данные в формате JSON в ИНТЕРФЕЙСе командной строки содержат сведения SSH для подключения к виртуальной машине. Скопируйте значение записи SSH для общедоступного раздела выходных данных. Например, команда SSH должна выглядеть примерно так ssh azureUser@edge-vm.westus2.cloudapp.azure.com:

Просмотр состояния среды выполнения IoT Edge

Оставшиеся команды в этом кратком руководстве выполняются непосредственно на вашем устройстве IoT Edge, чтобы вы могли увидеть, что происходит на устройстве. Если вы используете виртуальную машину, подключитесь к ней, используя настроенное имя пользователя администратора и DNS-имя, возвращенное командой развертывания. Вы также можете найти DNS-имя на странице обзора виртуальной машины на портале Azure. Подключитесь к виртуальной машине, используя приведенную ниже команду. Замените <admin-username> и <DNS-name> собственными значениями.

ssh <admin-username>@<DNS-name>

После подключения к виртуальной машине убедитесь, что среда выполнения была успешно установлена и настроена на устройстве IoT Edge.

  1. Проверьте, запущен ли IoT Edge. Следующая команда возвращает статус Ok, если IoT Edge запущен, или предоставляет информацию об ошибках службы.

    sudo iotedge system status
    

    Совет

    Для запуска команд iotedge требуется более высокий уровень привилегий. После выхода из компьютера и входа в первый раз после установки среды выполнения IoT Edge ваши разрешения обновляются автоматически. До этого момента используйте перед командой префикс sudo.

  2. Если нужно устранить неполадки со службой, извлеките журналы службы.

    sudo iotedge system logs
    
  3. Просмотрите все модули, работающие на устройстве IoT Edge. Так как служба запущена первый раз, отобразится только запущенный модуль edgeAgent. Модуль edgeAgent запускается по умолчанию и позволяет установить и запустить любые дополнительные модули, развертываемые на устройстве.

    sudo iotedge list
    

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

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

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

Схема развертывания модуля из облака на устройство.

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

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

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

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

  2. В меню слева в разделе Device Management выберите Devices.

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

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

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

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

  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 в списке развернутых модулей.

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

просмотр сформированных данных.

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

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

Откройте командную строку на устройстве IoT Edge или используйте подключение SSH из Azure CLI. Убедитесь, что модуль, развернутый из облака, запущен на устройстве IoT Edge:

sudo iotedge list

Снимок экрана: три модуля на устройстве.

Просмотрите сообщения, отправленные из модуля датчика температуры:

sudo iotedge logs SimulatedTemperatureSensor -f

Снимок экрана: данные из модуля в выходной консоли.

Совет

IoT Edge команды чувствительны к регистру при обращении к именам модулей.

Очистка ресурсов

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

Если вы создали виртуальную машину и Центр Интернета вещей в новой группе ресурсов, можно удалить эту группу и все связанные с ней ресурсы. Дважды проверьте содержимое группы ресурсов, чтобы убедиться, что нет ничего, что вы хотите сохранить. Если вы не хотите удалять всю группу, можно удалить отдельные ресурсы.

Внимание

Удаление группы ресурсов — процесс необратимый.

Удалите группу IoTEdgeResources . Удаление группы ресурсов может занять несколько минут.

az group delete --name IoTEdgeResources --yes

Убедитесь, что группа ресурсов удаляется, просматривая список групп ресурсов.

az group list

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

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

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