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


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

Область применения:yes icon IoT Edge 1.1

Это важно

Дата окончания поддержки IoT Edge 1.1 была 13 декабря 2022 г. Проверьте жизненный цикл продукта Майкрософт , чтобы узнать, как поддерживается этот продукт, служба, технология или API. Дополнительные сведения об обновлении до последней версии IoT Edge см. в разделе "Обновление IoT Edge".

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

    Запуск Cloud Shell в новом окне

  • Если вы предпочитаете, установите Azure CLI для выполнения ссылочных команд CLI.

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

Поскольку поведение и управление устройств 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}
    

    Просмотр строки подключения из выходных данных CLI

Настройка устройства 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 и между устройством и Центром Интернета вещей.

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

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

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

Используйте следующую команду CLI, чтобы создать устройство IoT Edge на основе предварительно созданного шаблона iotedge-vm-deploy .

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

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/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/1.1/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>"
    

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

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

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

Получение значения общедоступного SSH из выходных данных

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

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

ssh {admin username}@{DNS name}

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

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

    sudo systemctl status iotedge
    

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

    Подсказка

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

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

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

    sudo iotedge list
    

    Просмотр одного модуля на устройстве

Теперь устройство 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 из списка.

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

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

    Снимок экрана: выбор набора модулей.

Модули

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

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

Снимок экрана: раскрывающееся меню

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

Нажмите кнопку "Далее" — маршруты , чтобы перейти к следующему шагу мастера.

Снимок экрана: продолжение следующего шага после добавления модуля.

Маршруты

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

Снимок экрана: удаление маршрута по умолчанию, а затем переход к следующему шагу.

Нажмите кнопку "Далее": проверка и создание.

Проверка и создание

Просмотрите JSON-файл и нажмите кнопку "Создать". В файле JSON определены все модули, развертываемые на устройстве IoT Edge. Вы увидите модуль SimulatedTemperatureSensor и два модуля среды выполнения, edgeAgent и edgeHub.

Примечание.

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

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

Вы увидите три модуля: $edgeAgent, $edgeHub и SimulatedTemperatureSensor. Если один или несколько модулей имеют ДА в разделе "УКАЗАННОЕ В РАЗВЕРТЫВАНИи", но отсутствуют в разделе "СООБЩАЕТСЯ ПО УСТРОЙСТВУ", устройство IoT Edge по-прежнему запускает их. Подождите несколько минут и обновите страницу.

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

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

В этом кратком руководстве было создано новое устройство 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 при использовании имен модулей учитывается регистр.

Просмотр данных из модуля

Вы также можете просматривать сообщения, поступающие в Центр Интернета вещей, с помощью расширения Центра Интернета вещей Azure для Visual Studio Code.

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

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

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

Это важно

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

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

az group delete --name IoTEdgeResources --yes

Чтобы проверить, удалена ли группа ресурсов, просмотрите список групп ресурсов.

az group list

Дальнейшие действия

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

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