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


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

Область применения:Отметка IoT Edge 1.5 IoT Edge 1.5

Внимание

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

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

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

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

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

В этом кратком руководстве описано, как создать виртуальную машину Linux, используемую как устройство IoT Edge. Затем вы развернете модуль из портала 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.

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

`az group create --name IoTEdgeResources --location westus2`

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

Начните с создания Центра Интернета вещей, используя краткое руководство по Azure CLI.

Схема, демонстрирующая создание Центра Интернета вещей в облаке.

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

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

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

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

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

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

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

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

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

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

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

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

  1. Войдите в портал Azure и перейдите к Центр Интернета вещей.

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

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

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

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

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

  5. В разделе модулей IoT Edge выберите "Добавить", а затем выберите "Модуль IoT Edge".

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

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

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

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

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

    Примечание.

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

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

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

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

Если у вас возникли проблемы с развертыванием модулей, дополнительные сведения см. в разделе "Устранение неполадок устройств 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.