Distribuera en ny simulerad enhet
Med lösningsacceleratorerna Fjärrövervakning och Enhetssimulering kan du definiera dina egna simulerade enheter. Den här artikeln visar hur du distribuerar en anpassad kylaggregatstyp och en ny typ av glödlampa till lösningsacceleratorn Fjärrövervakning.
Stegen i den här artikeln förutsätter att du har slutfört guiden Skapa och testa en ny simulerad enhet och ha de filer som definierar den anpassade kylaggregatet och nya typer av glödlampor.
Stegen i den här guiden visar hur du:
Använd SSH för att komma åt filsystemet för den virtuella dator som är värd för acceleratorn för fjärrövervakningslösningen.
Konfigurera Docker för att läsa in enhetsmodellerna från en plats utanför Docker-containern.
Kör lösningsacceleratorn Fjärrövervakning med hjälp av anpassade enhetsmodellfiler.
Använda Azure Cloud Shell
Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln utan att behöva installera något i din lokala miljö.
Så här startar du Azure Cloud Shell:
Alternativ | Exempel/länk |
---|---|
Välj Prova i det övre högra hörnet av ett kodblock. Om du väljer Prova kopieras koden inte automatiskt till Cloud Shell. | |
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. | |
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. |
Så här kör du koden i den här artikeln i Azure Cloud Shell:
Starta Cloud Shell.
Kopiera koden genom att klicka på knappen Kopiera på ett kodblock.
Klistra in koden i Cloud Shell-sessionen genom att välja Ctrl+Skift+V på Windows och Linux eller genom att välja Cmd+Skift+V på macOS.
Välj Retur för att köra koden.
För att slutföra stegen i den här guiden behöver du en aktiv Azure-prenumeration.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Förutsättningar
Om du vill följa den här guiden behöver du:
- En distribuerad instans av acceleratorn fjärrövervakningslösning.
- Ett lokalt bash-gränssnitt för att köra kommandona
ssh
ochscp
. I Windows är ett enkelt sätt att installera bash att installera git. - Dina anpassade enhetsmodellfiler, till exempel de som beskrivs i Skapa och testa en ny simulerad enhet.
Få åtkomst till den virtuella datorn
Följande steg använder Azure CLI i Azure Cloud Shell. Om du vill kan du installera Azure CLI på utvecklingsdatorn och köra kommandona lokalt.
Följande steg visar hur du konfigurerar den virtuella Azure-datorn för att tillåta SSH-åtkomst . Stegen som visas förutsätter att namnet du valde för lösningsacceleratorn är contoso-simulering – ersätt det här värdet med namnet på distributionen:
Visa en lista över innehållet i resursgruppen som innehåller lösningsacceleratorresurserna:
az resource list -g contoso-simulation -o table
Anteckna namnet på den virtuella datorn, den offentliga IP-adressen och nätverkssäkerhetsgruppen – du behöver dessa värden senare.
Uppdatera nätverkssäkerhetsgruppen så att SSH-åtkomst tillåts. Följande kommando förutsätter att namnet på nätverkssäkerhetsgruppen är contoso-simulation-nsg – ersätt det här värdet med namnet på nätverkssäkerhetsgruppen:
az network nsg rule update --name SSH --nsg-name contoso-simulation-nsg -g contoso-simulation --access Allow -o table
Aktivera endast SSH-åtkomst under test och utveckling. Om du aktiverar SSH bör du inaktivera det igen så snart som möjligt.
Uppdatera lösenordet för azureuser-kontot på den virtuella datorn till ett lösenord som du känner till. Välj ditt eget lösenord när du kör följande kommando:
az vm user update --name vm-vikxv --username azureuser --password YOURSECRETPASSWORD -g contoso-simulation
Hitta den offentliga IP-adressen för den virtuella datorn. Följande kommando förutsätter att namnet på den virtuella datorn är vm-vikxv – ersätt det här värdet med namnet på den virtuella dator som du antecknade tidigare:
az vm list-ip-addresses --name vm-vikxv -g contoso-simulation -o table
Anteckna den virtuella datorns offentliga IP-adress.
Konfigurera Docker
I det här avsnittet konfigurerar du Docker för att läsa in enhetsmodellfilerna från mappen /tmp/devicemodels på den virtuella datorn i stället för inifrån Docker-containern. Kör kommandona i det här avsnittet i ett bash-gränssnitt på den lokala datorn:
I det här avsnittet konfigurerar du Docker för att läsa in enhetsmodellfilerna från mappen /tmp/devicemodels på den virtuella datorn i stället för inifrån Docker-containern. Kör kommandona i det här avsnittet i ett bash-gränssnitt på den lokala datorn:
Använd SSH för att ansluta till den virtuella datorn i Azure från din lokala dator. Följande kommando förutsätter att den offentliga IP-adressen för den virtuella datorn vm-vikxv är 104.41.128.108 – ersätt det här värdet med den virtuella datorns offentliga IP-adress från föregående avsnitt:
ssh azureuser@104.41.128.108
Följ anvisningarna för att logga in på den virtuella datorn med det lösenord som du angav i föregående avsnitt.
Konfigurera enhetssimuleringstjänsten för att läsa in enhetsmodellerna utanför containern. Öppna först Docker-konfigurationsfilen:
sudo nano /app/docker-compose.yml
Leta upp inställningarna för containern devicesimulation och redigera volyminställningen enligt följande kodfragment:
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
Spara ändringarna.
Kopiera de befintliga enhetsmodellfilerna från containern till den nya platsen. Leta först upp container-ID:t för enhetssimuleringscontainern:
sudo docker ps
Kopiera sedan enhetsmodellfilerna till mappen tmp på den virtuella datorn. Följande kommando förutsätter att container-ID:t är c378d6878407 – ersätt det här värdet med ditt container-ID för enhetssimulering:
sudo docker cp c378d6878407:/app/webservice/data/devicemodels /tmp sudo chown -R azureuser /tmp/devicemodels/
Håll bash-fönstret med SSH-sessionen öppen.
Kopiera dina anpassade enhetsmodellfiler till den virtuella datorn. Kör det här kommandot i ett annat bash-gränssnitt på datorn där du skapade dina anpassade enhetsmodeller. Navigera först till den lokala mappen som innehåller JSON-filer för enhetsmodellen. Följande kommandon förutsätter att den virtuella datorns offentliga IP-adress är 104.41.128.108 – ersätt det här värdet med den virtuella datorns offentliga IP-adress. Ange lösenordet för den virtuella datorn när du uppmanas att göra följande:
scp *json azureuser@104.41.128.108:/tmp/devicemodels cd scripts scp *js azureuser@104.41.128.108:/tmp/devicemodels/scripts
Starta om Docker-containern för enhetssimulering för att använda de nya enhetsmodellerna. Kör följande kommandon i bash-gränssnittet med den öppna SSH-sessionen till den virtuella datorn:
sudo /app/start.sh
Om du vill se status för de Docker-containrar som körs och deras container-ID:n använder du följande kommando:
sudo docker ps
Om du vill se loggen från enhetssimuleringscontainern kör du följande kommando. Ersätt container-ID:t med ID:t för din enhetssimuleringscontainer:
sudo docker logs -f 5d3f3e78822e
Kör simulering
Nu kan du använda dina anpassade enhetsmodeller i fjärrövervakningslösningen:
Starta instrumentpanelen för fjärrövervakning.
Använd sidan Enheter för att lägga till simulerade enheter. När du lägger till en ny simulerad enhet är dina nya enhetsmodeller tillgängliga att välja.
Du kan använda instrumentpanelen för att visa enhetstelemetri och anropa enhetsmetoder.
Rensa resurser
Om du planerar att utforska ytterligare lämnar du acceleratorn Fjärrövervakningslösning distribuerad.
Om du inte längre behöver lösningsacceleratorn tar du bort den.
Nästa steg
Den här guiden visade hur du distribuerar anpassade enhetsmodeller till acceleratorn Fjärrövervakningslösning. Det föreslagna nästa steget är att lära dig hur du ansluter en verklig enhet till din fjärrövervakningslösning.