Implementar um novo dispositivo simulado

Os aceleradores de solução de monitorização remota e simulação de dispositivo permitem definir os seus próprios dispositivos simulados. Este artigo mostra como implantar um tipo de dispositivo de refrigeração personalizado e um novo tipo de dispositivo de lâmpada para o acelerador de solução de monitorização remota.

Os passos deste artigo assumem que completou o Create e testa um novo dispositivo simulado como orientar e tem os ficheiros que definem o refrigerador personalizado e novos tipos de dispositivos de lâmpada.

Os passos neste guia de como guiar mostram-lhe como:

  1. Utilize o SSH para aceder ao sistema de ficheiros da máquina virtual que acolhe o acelerador de solução de monitorização remota.

  2. Configure o Docker para carregar os modelos do dispositivo a partir de um local fora do contentor Docker.

  3. Executar o acelerador de solução de monitorização remota utilizando ficheiros de modelos de dispositivos personalizados.

Utilizar o Azure Cloud Shell

O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Pode utilizar os comandos pré-instalados do Cloud Shell para executar o código neste artigo sem ter de instalar nada no ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Ligação
Selecione Experimentar no canto superior direito de um bloco de código. A seleção de Experimente não copia automaticamente o código para o Cloud Shell. Exemplo da opção Experimente para o Azure Cloud Shell
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. Iniciar Cloud Shell numa nova janela
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. Botão Cloud Shell no portal do Azure

Para executar o código neste artigo no Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar num bloco de código para copiar o código.

  3. Cole o código na sessão do Cloud Shell ao selecionar Ctrl+Shift+V no Windows e Linux ou Cmd+Shift+V no macOS.

  4. Selecione Introduzir para executar o código.

Para completar os passos neste guia de como fazer, precisa de uma subscrição ativa do Azure.

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Para acompanhar este guia, precisa:

  • Uma instância implantada do acelerador de solução de monitorização remota.
  • Uma carapaça local para executar os ssh comandos e scp comandos. No Windows, uma forma fácil de instalar bash é instalar git.
  • Os ficheiros de modelos do seu dispositivo personalizado, como os descritos no Create e testar um novo dispositivo simulado.

Aceda à máquina virtual

Os seguintes passos utilizem o Azure CLI em Azure Cloud Shell. Se preferir, pode instalar o CLI Azure na sua máquina de desenvolvimento e executar os comandos localmente.

Os passos seguintes mostram-lhe como configurar a máquina virtual Azure para permitir o acesso ao SSH . Os passos mostrados assumem que o nome que escolheu para o acelerador de solução é contoso-simulação -- substitua este valor pelo nome da sua implantação:

  1. Listar os conteúdos do grupo de recursos que contém os recursos aceleradores de solução:

    az resource list -g contoso-simulation -o table
    

    Tome nota do nome da máquina virtual, do endereço IP público e do grupo de segurança da rede - precisa destes valores mais tarde.

  2. Atualize o grupo de segurança da rede para permitir o acesso ao SSH. O seguinte comando assume que o nome do grupo de segurança da rede é contoso-simulação-nsg -- substitua este valor pelo nome do seu grupo de segurança de rede:

    az network nsg rule update --name SSH --nsg-name contoso-simulation-nsg -g contoso-simulation --access Allow -o table
    

    Apenas permitir o acesso ao SSH durante o teste e o desenvolvimento. Se ativar o SSH, deve desativá-lo novamente o mais rapidamente possível.

  3. Atualize a palavra-passe para a conta azureuser na máquina virtual para uma palavra-passe que conhece. Escolha a sua própria senha quando executar o seguinte comando:

    az vm user update --name vm-vikxv --username azureuser --password YOURSECRETPASSWORD  -g contoso-simulation
    
  4. Encontre o endereço IP público da sua máquina virtual. O seguinte comando pressupõe que o nome da máquina virtual é vm-vikxv -- substitua este valor pelo nome da máquina virtual que fez uma nota de anteriormente:

    az vm list-ip-addresses --name vm-vikxv -g contoso-simulation -o table
    

    Tome nota do endereço IP público da sua máquina virtual.

Configure Docker

Nesta secção, configurar o Docker para carregar os ficheiros dos modelos do dispositivo a partir da pasta /tmp/devicemodels na máquina virtual e não no interior do contentor Docker. Coloque os comandos nesta secção numa casca de choque na sua máquina local:

Nesta secção, configurar o Docker para carregar os ficheiros dos modelos do dispositivo a partir da pasta /tmp/devicemodels na máquina virtual e não no interior do contentor Docker. Coloque os comandos nesta secção numa casca de choque na sua máquina local:

  1. Utilize o SSH para ligar à máquina virtual em Azure a partir da sua máquina local. O seguinte comando pressupõe que o endereço IP público da máquina virtual vm-vikxv é 104.41.128.108 -- substitua este valor pelo endereço IP público da sua máquina virtual da secção anterior:

     ssh azureuser@104.41.128.108
    

    Siga as instruções para iniciar sôm na máquina virtual com a palavra-passe que definiu na secção anterior.

  2. Configure o serviço de simulação do dispositivo para carregar os modelos do dispositivo do lado de fora do recipiente. Primeiro abra o ficheiro de configuração do Docker:

    sudo nano /app/docker-compose.yml
    

    Localize as definições para o recipiente de identificação do dispositivo e edite a definição de volumes como mostrado no seguinte corte:

    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
    

    Guarde as alterações.

  3. Copie os ficheiros de modelos do dispositivo existentes do recipiente para o novo local. Primeiro, encontre a identificação do recipiente para o recipiente de simulação do dispositivo:

    sudo docker ps
    

    Em seguida, copie os ficheiros do modelo do dispositivo para a pasta tmp na máquina virtual. O seguinte comando pressupõe que o ID do contentor é c378d6878407 -- substitua este valor pelo ID do seu contentor de simulação do dispositivo:

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

    Mantenha a janela da festa com a sessão SSH aberta.

  4. Copie os ficheiros de modelos do seu dispositivo personalizado na máquina virtual. Executar este comando em outra casca de choque na máquina onde criou os seus modelos de dispositivos personalizados. Primeiro, navegue para a pasta local que contém os ficheiros JSON do seu modelo de dispositivo. Os seguintes comandos assumem que o endereço IP público da máquina virtual é 104.41.128.108 -- substitua este valor pelo endereço IP público da sua máquina virtual. Introduza a palavra-passe da máquina virtual quando solicitado:

    scp *json azureuser@104.41.128.108:/tmp/devicemodels
    cd scripts
    scp *js azureuser@104.41.128.108:/tmp/devicemodels/scripts
    
  5. Reinicie a simulação do dispositivo O recipiente Docker para utilizar os novos modelos do dispositivo. Executar os seguintes comandos na casca de bash com a sessão SSH aberta para a máquina virtual:

    sudo /app/start.sh
    

    Se pretender ver o estado dos recipientes estivadores em funcionamento e as suas identificações de contentores, utilize o seguinte comando:

    sudo docker ps
    

    Se pretender ver o registo do recipiente de simulação do dispositivo, execute o seguinte comando. Substitua o ID do recipiente pelo ID do seu recipiente de simulação do dispositivo:

    sudo docker logs -f 5d3f3e78822e
    

Simulação de execução

Agora pode utilizar os seus modelos de dispositivos personalizados na solução de Monitorização Remota:

  1. Lance o seu painel de monitorização remota.

  2. Utilize a página Dispositivos para adicionar dispositivos simulados. Quando adiciona um novo dispositivo simulado, os seus novos modelos de dispositivo estão disponíveis para escolher.

  3. Pode utilizar o painel de instrumentos para visualizar os métodos de telemetria e dispositivo de chamada do dispositivo.

Limpar os recursos

Se pretende explorar mais, deixe o acelerador de solução de Monitorização Remota implantado.

Se já não precisar do acelerador de solução, elimine-o.

Passos seguintes

Este guia mostrou-lhe como implementar modelos de dispositivos personalizados para o acelerador de solução de monitorização remota. O próximo passo sugerido é aprender a ligar um dispositivo real à sua solução de Monitorização Remota.