Развертывание нового имитированного устройства

Акселераторы решений для удаленного мониторинга и имитации устройств позволяют определить собственные имитированные устройства. В этой статье показано, как развернуть настраиваемый тип устройства Chiller и новый тип устройства Lightbulb в акселератор решения для удаленного мониторинга.

В этой статье предполагается, что вы завершили руководство Создание и тестирование нового имитированного устройства и у вас есть файлы, которые определяют типы устройств: настраиваемый Chiller и новый Lightbulb.

В этом практическом руководстве показано, как:

  1. Использовать SSH для доступа к файловой системе виртуальной машины, где размещен акселератор решения для удаленного мониторинга.

  2. Настраивать Docker для загрузки моделей устройств из расположения за пределами контейнера Docker.

  3. Запускать акселератор решения для удаленного мониторинга с помощью файлов пользовательских моделей устройств.

Использование Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.

Начало работы с Azure Cloud Shell

Параметр Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока с кодом. При нажатии кнопки Попробовать код не копируется в Cloud Shell автоматически. Открытие Azure Cloud Shell с помощью кнопки
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Запуск Cloud Shell в новом окне
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Кнопка Cloud Shell на портале Azure

Чтобы выполнить код из этой статьи в Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. В блоке кода нажмите кнопку Копировать, чтобы скопировать код.

  3. Вставьте код в окно сеанса Cloud Shell, нажав клавиши CTRLSHIFTV в Windows и Linux или CMDSHIFTV в macOS.

  4. Нажмите клавишу ВВОД, чтобы выполнить код.

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

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

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

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

  • Развернутый экземпляр акселератора решения для удаленного мониторинга.
  • Локальная оболочка bash для выполнения команд ssh и scp. В Windows нужно установить git, чтобы легко установить bash.
  • Файлы пользовательских моделей устройств, такие, как описаны в статье Создание и тестирование нового имитированного устройства.

Доступ к виртуальной машине

Следующие шаги используют Azure CLI в Azure Cloud Shell. При желании вы можете установить Azure CLI на компьютере разработки и выполнить команды локально.

Ниже показано, как настроить виртуальную машину Azure, чтобы разрешить доступ SSH. Представленные шаги предполагают, что имя, которое вы выбрали для ускорителя решения, — contoso-simulation. Замените это значение на имя вашего развертывания.

  1. Список содержимого группы ресурсов, которая содержит ресурсы ускорителя решения, приведен ниже.

    az resource list -g contoso-simulation -o table
    

    Запишите имя виртуальной машины, общедоступный IP-адрес и группу безопасности сети — эти значения понадобятся вам позже.

  2. Обновите группу безопасности сети, чтобы разрешить доступ 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, его следует отключить как можно скорее.

  3. Обновите пароль для учетной записи azureuser на виртуальной машине на известный вам пароль. Выберите свой пароль, если вы запускаете следующую команду.

    az vm user update --name vm-vikxv --username azureuser --password YOURSECRETPASSWORD  -g contoso-simulation
    
  4. Найдите общедоступный 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 на локальном компьютере:

  1. Установите SSH-подключение к виртуальной машине в Azure с локального компьютера. В команде ниже предполагается общедоступный IP-адрес виртуальной машины vm-vikxv104.41.128.108. Замените это значение общедоступным IP-адресом своей виртуальной машины из предыдущего раздела:

     ssh azureuser@104.41.128.108
    

    Следуйте инструкциям, чтобы войти в систему виртуальной машины с помощью пароля, настроенного в предыдущем разделе.

  2. Настройте службу имитации устройств для загрузки моделей устройств из-за пределов контейнера. Сначала откройте файл конфигурации 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
    

    Сохраните изменения.

  3. Скопируйте имеющиеся файлы моделей устройств из контейнера в новое расположение. Сначала найдите идентификатор контейнера для имитирования устройств.

    sudo docker ps
    

    Затем скопируйте файлы моделей устройств в папку tmp на виртуальной машине. В указанной ниже команде предполагается, что идентификатор контейнера — c378d6878407. Замените это значение идентификатором контейнера для имитирования устройств.

    sudo docker cp c378d6878407:/app/webservice/data/devicemodels /tmp
    sudo chown -R azureuser /tmp/devicemodels/
    

    Не закрывайте окно bash с сеансом SSH.

  4. Скопируйте файлы пользовательских моделей устройств на виртуальную машину. Выполните следующую команду в другой оболочке 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
    
  5. Перезапустите контейнер Docker для имитации устройств, чтобы использовать новые модели устройств. Выполните следующие команды в оболочке bash при открытом сеансе SSH с виртуальной машиной:

    sudo /app/start.sh
    

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

    sudo docker ps
    

    Чтобы просмотреть журнал из контейнера для имитирования устройств, выполните следующую команду. Замените идентификатор контейнера идентификатором вашего контейнера для имитирования устройств:

    sudo docker logs -f 5d3f3e78822e
    

Выполнение имитации

Теперь можно использовать пользовательские модели устройств в решении для удаленного мониторинга.

  1. Запустите панель мониторинга удаленного мониторинга.

  2. На странице устройств можно добавить имитированные устройства. При добавлении нового имитированного устройства можно выбрать новые модели устройства.

  3. На панели мониторинга можно просматривать телеметрию и вызывать методы устройства.

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

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

Если акселератор решений больше не нужен, удалите его.

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

В этом практическом руководстве показано, как развернуть пользовательские модели устройств в акселератор решения для удаленного мониторинга. Далее мы предлагаем вам ознакомиться со статьей Подключение устройства к предварительно настроенному решению для удаленного мониторинга (Node.js).