Развертывание нового имитированного устройства
Акселераторы решений для удаленного мониторинга и имитации устройств позволяют определить собственные имитированные устройства. В этой статье показано, как развернуть настраиваемый тип устройства Chiller и новый тип устройства Lightbulb в акселератор решения для удаленного мониторинга.
В этой статье предполагается, что вы завершили руководство Создание и тестирование нового имитированного устройства и у вас есть файлы, которые определяют типы устройств: настраиваемый Chiller и новый Lightbulb.
В этом практическом руководстве показано, как:
Использовать SSH для доступа к файловой системе виртуальной машины, где размещен акселератор решения для удаленного мониторинга.
Настраивать Docker для загрузки моделей устройств из расположения за пределами контейнера Docker.
Запускать акселератор решения для удаленного мониторинга с помощью файлов пользовательских моделей устройств.
Использование Azure Cloud Shell
В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.
Начало работы с Azure Cloud Shell
Параметр | Пример и ссылка |
---|---|
Нажмите кнопку Попробовать в правом верхнем углу блока с кодом. При нажатии кнопки Попробовать код не копируется в Cloud Shell автоматически. | |
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. | |
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
Чтобы выполнить код из этой статьи в Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
В блоке кода нажмите кнопку Копировать, чтобы скопировать код.
Вставьте код в окно сеанса Cloud Shell, нажав клавиши CTRLSHIFTV в Windows и Linux или CMDSHIFTV в macOS.
Нажмите клавишу ВВОД, чтобы выполнить код.
Чтобы выполнить действия, описанные в этом руководстве, вам потребуется активная подписка Azure.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Предварительные требования
Чтобы следовать этому пошаговому руководству, вам необходимы следующие компоненты.
- Развернутый экземпляр акселератора решения для удаленного мониторинга.
- Локальная оболочка bash для выполнения команд
ssh
иscp
. В Windows нужно установить git, чтобы легко установить bash. - Файлы пользовательских моделей устройств, такие, как описаны в статье Создание и тестирование нового имитированного устройства.
Доступ к виртуальной машине
Следующие шаги используют Azure CLI в Azure Cloud Shell. При желании вы можете установить Azure CLI на компьютере разработки и выполнить команды локально.
Ниже показано, как настроить виртуальную машину Azure, чтобы разрешить доступ SSH. Представленные шаги предполагают, что имя, которое вы выбрали для ускорителя решения, — contoso-simulation. Замените это значение на имя вашего развертывания.
Список содержимого группы ресурсов, которая содержит ресурсы ускорителя решения, приведен ниже.
az resource list -g contoso-simulation -o table
Запишите имя виртуальной машины, общедоступный IP-адрес и группу безопасности сети — эти значения понадобятся вам позже.
Обновите группу безопасности сети, чтобы разрешить доступ SSH. Следующая команда предполагает, что имя группы сетевой безопасности, — contoso-simulation-nsg. Замените это значение на имя вашей группы безопасности сети.
az network nsg rule update --name SSH --nsg-name contoso-simulation-nsg -g contoso-simulation --access Allow -o table
Включать доступ по протоколу SSH нужно только во время тестирования и разработки. Если вы включите SSH, его следует отключить как можно скорее.
Обновите пароль для учетной записи azureuser на виртуальной машине на известный вам пароль. Выберите свой пароль, если вы запускаете следующую команду.
az vm user update --name vm-vikxv --username azureuser --password YOURSECRETPASSWORD -g contoso-simulation
Найдите общедоступный IP-адрес вашей виртуальной машины. Следующая команда предполагает, что имя виртуальной машины — vm-vikxv. Замените это значение именем виртуальной машины, которое вы записали ранее.
az vm list-ip-addresses --name vm-vikxv -g contoso-simulation -o table
Запишите общедоступный IP-адрес вашей виртуальной машины.
Настройка Docker
В этом разделе выполняется настройка Docker для загрузки файлов моделей устройств из папки /tmp/devicemodels виртуальной машины, а не из контейнера Docker. Выполните команды в этом разделе в оболочке bash на локальном компьютере:
В этом разделе выполняется настройка Docker для загрузки файлов моделей устройств из папки /tmp/devicemodels виртуальной машины, а не из контейнера Docker. Выполните команды в этом разделе в оболочке bash на локальном компьютере:
Установите SSH-подключение к виртуальной машине в Azure с локального компьютера. В команде ниже предполагается общедоступный IP-адрес виртуальной машины vm-vikxv — 104.41.128.108. Замените это значение общедоступным IP-адресом своей виртуальной машины из предыдущего раздела:
ssh azureuser@104.41.128.108
Следуйте инструкциям, чтобы войти в систему виртуальной машины с помощью пароля, настроенного в предыдущем разделе.
Настройте службу имитации устройств для загрузки моделей устройств из-за пределов контейнера. Сначала откройте файл конфигурации Docker:
sudo nano /app/docker-compose.yml
Найдите параметры для контейнера devicesimulation и измените параметр volumes, как показано в следующем фрагменте кода:
devicesimulation: image: azureiotpcs/device-simulation-dotnet:1.0.0 networks: - default_net depends_on: - storageadapter environment: - PCS_KEYVAULT_NAME - PCS_AAD_APPID - PCS_AAD_APPSECRET # How one could mount custom device models volumes: - /tmp/devicemodels:/app/webservice/data/devicemodels:ro
Сохраните изменения.
Скопируйте имеющиеся файлы моделей устройств из контейнера в новое расположение. Сначала найдите идентификатор контейнера для имитирования устройств.
sudo docker ps
Затем скопируйте файлы моделей устройств в папку tmp на виртуальной машине. В указанной ниже команде предполагается, что идентификатор контейнера — c378d6878407. Замените это значение идентификатором контейнера для имитирования устройств.
sudo docker cp c378d6878407:/app/webservice/data/devicemodels /tmp sudo chown -R azureuser /tmp/devicemodels/
Не закрывайте окно bash с сеансом SSH.
Скопируйте файлы пользовательских моделей устройств на виртуальную машину. Выполните следующую команду в другой оболочке bash на компьютере, где были созданы пользовательские модели устройств. Сначала перейдите к локальной папке, содержащей JSON-файлы моделей устройств. В командах ниже предполагается, что общедоступный IP-адрес виртуальной машины — 104.41.128.108. Замените это значение общедоступным IP-адресом своей виртуальной машины. Введите пароль виртуальной машины при появлении запроса:
scp *json azureuser@104.41.128.108:/tmp/devicemodels cd scripts scp *js azureuser@104.41.128.108:/tmp/devicemodels/scripts
Перезапустите контейнер Docker для имитации устройств, чтобы использовать новые модели устройств. Выполните следующие команды в оболочке bash при открытом сеансе SSH с виртуальной машиной:
sudo /app/start.sh
Чтобы просмотреть состояние запущенных контейнеров Docker и их идентификаторы, выполните следующую команду:
sudo docker ps
Чтобы просмотреть журнал из контейнера для имитирования устройств, выполните следующую команду. Замените идентификатор контейнера идентификатором вашего контейнера для имитирования устройств:
sudo docker logs -f 5d3f3e78822e
Выполнение имитации
Теперь можно использовать пользовательские модели устройств в решении для удаленного мониторинга.
Запустите панель мониторинга удаленного мониторинга.
На странице устройств можно добавить имитированные устройства. При добавлении нового имитированного устройства можно выбрать новые модели устройства.
На панели мониторинга можно просматривать телеметрию и вызывать методы устройства.
Очистка ресурсов
Если вы планируете продолжить изучение, не удаляйте развернутый акселератор решения для удаленного мониторинга.
Если акселератор решений больше не нужен, удалите его.
Дальнейшие действия
В этом практическом руководстве показано, как развернуть пользовательские модели устройств в акселератор решения для удаленного мониторинга. Далее мы предлагаем вам ознакомиться со статьей Подключение устройства к предварительно настроенному решению для удаленного мониторинга (Node.js).