Руководство. Настройка среды машинного обучения в IoT Edge
Область применения: IoT Edge 1.1
Внимание
Дата окончания поддержки IoT Edge 1.1 была 13 декабря 2022 г. Чтобы получить сведения о поддержке определенного продукта, службы, технологии или API, перейдите на страницу Политика жизненного цикла поддержки Майкрософт. Дополнительные сведения об обновлении до последней версии IoT Edge см. в разделе "Обновление IoT Edge".
Эта статья поможет вам подготовить среду для разработки и развертывания. Сначала настройте все необходимые инструменты на компьютере для разработки. Затем создайте необходимые облачные ресурсы в Azure.
Из этого раздела учебника, вы узнаете, как:
- настроить виртуальную машину для разработки;
- настроить Центр Интернета вещей и облачное хранилище для среды разработки.
Необходимые компоненты
Эта статья входит в серию учебников по использованию Машинного обучения Azure в IoT Edge. Каждая статья в серии основана на инструкциях, выполненных при работе с предыдущей статьей. Если вы приступили сразу к этой статье, перейдите на первую статью серии.
Настройка виртуальной машины разработки
Этот шаг обычно выполняет разработчик облачных решений. Некоторое программное обеспечение, возможно, будет полезным также для специалиста по обработке и анализу данных.
Мы разработали скрипт PowerShell, который позволяет создать виртуальную машину Azure с несколькими уже настроенными предварительными инструментами. Виртуальная машина, которую мы создаем, должна иметь возможность обрабатывать вложенную виртуализацию. Поэтому мы выбрали виртуальную машину Standard_D8s_v3.
На виртуальной машине для разработки будут настроены следующие инструменты:
- Windows 10
- Chocolatey;
- Docker Desktop для Windows
- Git для Windows.
- диспетчер учетных данных Git для Windows;
- Базовый пакет SDK для .NET
- Python 3;
- Visual Studio Code
- Azure PowerShell
- расширения VS Code:
Виртуальная машина разработчика не является строго обязательной. Все средства разработки можно запускать на локальном компьютере. Но мы настоятельно рекомендуем работать на виртуальной машине, чтобы обеспечить одинаковые условия.
Создание и настройка виртуальных машин занимает около 30 минут.
Клонируйте или скачайте пример репозитория Машинного обучения и IoT Edge на локальный компьютер.
Откройте PowerShell с правами администратора и перейдите в каталог \IoTEdgeAndMlSample\DevVM, расположенный в корневом каталоге, куда вы скачали код. Корневой каталог источника данных будет называться
srcdir
.cd c:\srcdir\IoTEdgeAndMlSample\DevVM
Каталог DevVM содержит файлы, необходимые для создания виртуальной машины Azure в целях изучения этого руководства.
Выполните приведенную ниже команду, чтобы разрешить выполнение скриптов. Выберите Да для всех при появлении запроса.
Set-ExecutionPolicy Bypass -Scope Process
Запустите Create-AzureDevVM.ps1.
.\Create-AzureDevVm.ps1
При появлении запроса введите следующие сведения:
- Идентификатор подписки Azure: идентификатор подписки, который можно найти на портале подписок Azure.
- Имя группы ресурсов: имя новой или существующей группы ресурсов в Azure.
- Расположение. Выберите расположение Azure, в котором будет создана виртуальная машина. Например, "Западная часть США 2" или "Северная Европа". Дополнительные сведения см. в разделе о расположениях Azure.
- Имя пользователя: укажите запоминающееся имя учетной записи администратора для виртуальной машины.
- Пароль. Задайте пароль для учетной записи администратора для виртуальной машины.
Скрипт будет выполнять следующие действия в течение нескольких минут:
- Установка модуля Az для Azure PowerShell.
- Отображение запроса на вход в Azure.
- Подтверждение сведений для создания виртуальной машины. Нажмите клавишу Y или ВВОД, чтобы продолжить.
- Создание группы ресурсов, если она не существует.
- Развертывание виртуальной машины.
- Включение Hyper-V на виртуальной машине.
- Установка программного обеспечения для разработки и клонирование примера репозитория.
- Перезапуск виртуальной машины.
- Создание RDP-файла на рабочем столе для подключения к виртуальной машине.
Если будет предложено ввести имя виртуальной машины для перезапуска, ее имя можно скопировать из выходных данных скрипта. В выходных данных также отображается путь к RDP-файлу для подключения к виртуальной машине.
Настройка расписания автоматического завершения работы
Чтобы сократить затраты, автоматическое завершение работы виртуальной машины разработки установлено на 19:00 по тихоокеанскому времени. Возможно, потребуется изменить это время в зависимости от расположения и расписания работы. Чтобы изменить расписание завершения работы, сделайте следующее:
На портале Azure перейдите к виртуальной машине, созданной с помощью скрипта.
В меню панели слева в разделе Операции щелкните Автозавершение работы.
Измените параметры Запланированное завершение работы и Часовой пояс и нажмите кнопку Сохранить.
Подключение к виртуальной машине разработки
Теперь, когда мы создали виртуальную машину, нужно завершить установку программного обеспечения, необходимого для работы с этим руководством.
Дважды щелкните RDP-файл, созданный с помощью скрипта на рабочем столе.
Откроется диалоговое окно, информирующее о том, что издатель удаленного подключения неизвестен. Это допустимо, поэтому нажмите кнопку Подключить.
Укажите пароль администратора, который вы задали при создании виртуальной машины, и нажмите кнопку ОК.
Вам будет предложено принять сертификат для виртуальной машины. Выберите Да.
Установка расширений Visual Studio Code
Теперь, когда вы подключились к компьютеру для разработки, добавьте несколько полезных расширений в Visual Studio Code, чтобы упростить разработку.
Подключитесь к виртуальной машине разработки, откройте окно PowerShell и перейдите в каталог C:\source\IoTEdgeAndMlSample\DevVM Этот каталог создан с помощью того же скрипта, что и виртуальная машина.
cd C:\source\IoTEdgeAndMlSample\DevVM
Выполните приведенную ниже команду, чтобы разрешить выполнение скриптов. Выберите Да для всех при появлении запроса.
Set-ExecutionPolicy Bypass -Scope Process
Запустите скрипт расширений Visual Studio Code.
.\Enable-CodeExtensions.ps1
D течение нескольких минут с помощью скрипта будут установлены следующие расширения VS Code:
- Azure IoT Edge
- Центр Интернета вещей Azure
- Python
- C#
- Docker
- PowerShell
Настройка Центра Интернета вещей и службы хранилища
Эти действия обычно выполняет разработчик облака.
Центр Интернета вещей Azure — это основа любого приложения Интернета вещей, которая обеспечивает безопасную связь между устройствами Интернета вещей и облаком. Это основной координационный пункт для работы решения IoT Edge для машинного обучения.
Центр Интернета вещей использует маршруты для направления входящих данных с устройств Интернета вещей в другие подчиненные службы. Мы используем маршруты Центра Интернета вещей для отправки данных устройства в службу хранилища Azure. Здесь данные может использовать Машинное обучение Azure для обучения нашего классификатора оставшегося срока полезного использования (RUL).
Далее в рамках этого руководстве мы будем использовать Центр Интернета вещей для настройки нашего устройства Azure IoT Edge и управления им.
В рамках этого раздела используется скрипт для создания Центра Интернета вещей Azure и учетной записи службы хранилища Azure. Затем на портале Azure настраивается маршрут, по которому данные, полученные центром, перенаправляются в контейнер службы хранилища Azure. Эти действия занимают около 10 минут.
Подключитесь к виртуальной машине разработки, откройте окно PowerShell и перейдите в каталог IoTHub.
cd C:\source\IoTEdgeAndMlSample\IoTHub
Запустите скрипт создания. Используйте те же значения идентификатора подписки, расположения и группы ресурсов, что и при создании виртуальной машины для разработки.
.\New-HubAndStorage.ps1 -SubscriptionId <subscription id> -Location <location> -ResourceGroupName <resource group>
- Вам будет предложено войти в Azure.
- Скрипт подтверждает сведения для создания Центра и учетной записи хранения. Нажмите клавишу Y или ВВОД, чтобы продолжить.
Выполнение скрипта занимает около двух минут. По завершении скрипт выводит имя центра Интернета вещей и учетную запись хранения.
Просмотр маршрута для хранения в Центре Интернета вещей
В ходе создания Центра Интернета вещей с помощью скрипта, который мы запускали в предыдущем разделе, также были созданы пользовательская конечная точка и маршрут. Маршруты Центра Интернета вещей состоят из выражения запроса и конечной точки. Если сообщение соответствует выражению, данные отправляются по маршруту в соответствующую конечную точку. Конечными точками могут быть Центры событий, очереди Служебной шины и разделы. В этом случае конечной точкой является контейнер BLOB-объектов в учетной записи хранения. На портале Azure можно просмотреть маршрут, созданный нашим скриптом.
Откройте портал Azure и перейдите к группе ресурсов, которую вы используете для работы с этим руководством.
В списке ресурсов выберите Центр Интернета вещей, созданный с помощью скрипта. Имя центра будет заканчиваться случайными символами, например
IotEdgeAndMlHub-jrujej6de6i7w
.В меню слева в разделе "Параметры концентратора" выберите "Маршрутизация сообщений".
На странице Маршрутизация сообщений выберите вкладку Пользовательские конечные точки.
Разверните раздел Хранение:
Элемент turbofanDeviceStorage отображается в списке пользовательских конечных точек. Обратите внимание на следующие характеристики этой конечной точки:
- Она указывает на контейнер хранилища BLOB-объектов, созданный с помощью
devicedata
, как указано в столбце Имя контейнера. - Его формат имени файла содержит слово "partition" в имени. Мы обнаружили, что этот формат удобнее для операций с файлами, которые мы будем делать с помощью записных книжек Azure далее в этом руководстве.
- Состояние конечной точки должно иметь значение Работоспособна.
- Она указывает на контейнер хранилища BLOB-объектов, созданный с помощью
Выберите вкладку Маршруты.
Выберите маршрут с именем turbofanDeviceDataToStorage.
Обратите внимание, что на странице Сведения о маршрутизации конечной точкой маршрута является turbofanDeviceStorage.
Просмотрите раздел Маршрутизация запроса, в котором задано значение true. Это означает, что все сообщения телеметрии устройства будут соответствовать этому маршруту, и, следовательно, все сообщения будут отправлены в конечную точку turbofanDeviceStorage.
Так как нет внесенных изменений, просто закройте эту страницу.
Очистка ресурсов
Этот учебник является частью серии статей, каждая из которых продолжает предыдущую. Не очищайте ресурсы, пока не завершите работу с последним учебником.
Следующие шаги
В рамках этой статьи мы создали Центр Интернета вещей и настроили маршрут к учетной записи хранения Azure. В рамках следующей статьи мы отправим данные из набора имитированных устройств через Центр Интернета вещей в учетную запись хранения. Далее в рамках этого руководства мы вернемся к маршрутам и познакомимся подробнее с запросами маршрутизации после того, как настроим устройство и модули IoT Edge.
Чтобы создать имитированное устройство для мониторинга, перейдите к следующей статье.