Déployer un nouvel appareil simulé

Les accélérateurs de solution Surveillance à distance et Simulation d’appareil vous permettent tous deux de définir vos propres appareils simulés. Cet article montre comment déployer un type d’appareil personnalisé Réfrigérateur et un nouveau type d’appareil Ampoule sur l’accélérateur de solution de supervision à distance.

Les étapes décrites dans cet article supposent que vous avez suivi les procédures décrites dans le guide Créer et tester un appareil simulé et disposez des fichiers qui définissent le type d’appareil personnalisé Réfrigérateur et le nouveau type d’appareil Ampoule.

Les étapes décrites dans ce guide montrent comment :

  1. Utiliser SSH pour accéder au système de fichiers de la machine virtuelle hébergeant l’accélérateur de solution de supervision à distance.

  2. Configurer Docker pour charger les modèles d’appareils à partir d’un emplacement extérieur au conteneur Docker.

  3. Exécuter l’accélérateur de solution de supervision à distance à l’aide de fichiers de modèles d’appareils personnalisés.

Utiliser Azure Cloud Shell

Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur. Vous pouvez utiliser Bash ou PowerShell avec Cloud Shell pour utiliser les services Azure. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.

Pour démarrer Azure Cloud Shell :

Option Exemple/Lien
Sélectionnez Essayer dans le coin supérieur droit d’un bloc de code. La sélection de Essayer ne copie pas automatiquement le code dans Cloud Shell. Exemple Essayer pour Azure Cloud Shell
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur. Lancer Cloud Shell dans une nouvelle fenêtre
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure. Bouton Cloud Shell du portail Azure

Pour exécuter le code de cet article dans Azure Cloud Shell :

  1. Démarrez Cloud Shell.

  2. Sélectionnez le bouton Copier dans un bloc de code pour copier le code.

  3. Collez le code dans la session Cloud Shell en sélectionnant CtrlMajV sur Windows et Linux, ou en sélectionnant CmdMajV sur macOS.

  4. Sélectionnez Entrée pour exécuter le code.

Pour effectuer les étapes décrites dans ce guide pratique, vous avez besoin d’un abonnement Azure actif.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Prérequis

Pour effectuer les procédures de ce guide, vous avez besoin des éléments suivants :

  • Une instance déployée de l’accélérateur de solution de supervision à distance.
  • Un interpréteur de commandes bash local pour exécuter les commandes ssh et scp. Sur Windows, une manière simple d’installer bash consiste à installer git.
  • Vos fichiers de modèles d’appareils personnalisés, tels que ceux décrits dans Créer et tester un appareil simulé.

Accéder à la machine virtuelle

Les étapes suivantes utilisent Azure CLI dans Azure Cloud Shell. Si vous préférez, vous pouvez installer Azure CLI sur votre machine de développement et exécuter les commandes localement.

Les étapes suivantes vous permettent de configurer la machine virtuelle Azure afin d’autoriser l’accès SSH. Les étapes présentées supposent que le nom de l’accélérateur de solution est contoso-simulation. Remplacez cette valeur par le nom de votre déploiement :

  1. Répertoriez le contenu du groupe de ressources qui contient les ressources de l’accélérateur de solution :

    az resource list -g contoso-simulation -o table
    

    Notez le nom de la machine virtuelle, l’adresse IP publique et le nom du groupe de sécurité réseau, car vous aurez besoin de ces informations plus tard.

  2. Mettez à jour le groupe de sécurité réseau afin d’autoriser l’accès SSH. La commande suivante suppose que le nom du groupe de sécurité réseau est contoso-simulation-nsg. Remplacez cette valeur par le nom de votre groupe de sécurité réseau :

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

    Activez uniquement l’accès SSH durant les phases de développement et de test. Si vous activez SSH, vous devez le désactiver dès que possible.

  3. Changez le mot de passe du compte azureuser sur la machine virtuelle par un mot de passe de votre choix. Spécifiez votre propre mot de passe quand vous exécutez la commande suivante :

    az vm user update --name vm-vikxv --username azureuser --password YOURSECRETPASSWORD  -g contoso-simulation
    
  4. Recherchez l’adresse IP publique de votre machine virtuelle. La commande suivante suppose que le nom de la machine virtuelle est vm-vikxv. Remplacez cette valeur par le nom de machine virtuelle que vous avez précédemment noté :

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

    Notez l’adresse IP publique de votre machine virtuelle.

Configurer Docker

Dans cette section, vous allez configurer Docker pour charger les fichiers de modèles d’appareils dans la machine virtuelle à partir du dossier /tmp/devicemodels plutôt qu’à partir de l’intérieur du conteneur Docker. Exécutez les commandes spécifiées dans cette section dans un interpréteur de commandes bash sur votre ordinateur local :

Dans cette section, vous allez configurer Docker pour charger les fichiers de modèles d’appareils dans la machine virtuelle à partir du dossier /tmp/devicemodels plutôt qu’à partir de l’intérieur du conteneur Docker. Exécutez les commandes spécifiées dans cette section dans un interpréteur de commandes bash sur votre ordinateur local :

  1. Utilisez SSH pour vous connecter à la machine virtuelle dans Azure à partir de votre machine locale. La commande suivante suppose que l’adresse IP publique de la machine virtuelle vm-vikxv est 104.41.128.108. Remplacez cette valeur par l’adresse IP publique de votre machine virtuelle extraite de la section précédente :

     ssh azureuser@104.41.128.108
    

    Suivez les invites pour vous connecter à la machine virtuelle avec le mot de passe que vous définissez dans la section précédente.

  2. Configurez le service de simulation d’appareil pour charger les modèles d’appareils à partir de l’extérieur du conteneur. Commencez par ouvrir le fichier de configuration de Docker :

    sudo nano /app/docker-compose.yml
    

    Localisez les paramètres pour le conteneur devicesimulation, et modifiez le paramètre volumes comme dans l’extrait de code suivant :

    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
    

    Enregistrez les modifications.

  3. Copiez les fichiers de modèles d’appareils existants du conteneur vers le nouvel emplacement. Commencez par chercher l’ID de conteneur pour le conteneur de simulation d’appareil :

    sudo docker ps
    

    Copiez ensuite les fichiers de modèles d’appareils vers le dossier tmp dans la machine virtuelle. La commande suivante suppose que l’ID de conteneur est c378d6878407. Remplacez cette valeur par votre ID de conteneur de simulation d’appareil :

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

    Gardez la fenêtre bash avec votre session SSH ouverte.

  4. Copiez vos fichiers de modèles d’appareils personnalisés dans la machine virtuelle. Exécutez la commande suivante dans un autre interpréteur de commandes bash sur l’ordinateur que vous avez utilisé pour créer vos modèles d’appareils personnalisés. Commencez par accéder au dossier local contenant les fichiers JSON de votre modèle d’appareil. Les commandes suivantes supposent que l’adresse IP publique de la machine virtuelle est 104.41.128.108. Remplacez cette valeur par l’adresse IP publique de votre machine virtuelle. Entrez le mot de passe de votre machine virtuelle quand vous y êtes invité :

    scp *json azureuser@104.41.128.108:/tmp/devicemodels
    cd scripts
    scp *js azureuser@104.41.128.108:/tmp/devicemodels/scripts
    
  5. Redémarrez le conteneur Docker de simulation d’appareil pour utiliser les nouveaux modèles d’appareils. Exécutez les commandes suivantes dans l’interpréteur de commandes bash avec la session SSH ouverte sur la machine virtuelle :

    sudo /app/start.sh
    

    Si vous voulez afficher l’état et l’ID des conteneurs Docker en cours d’exécution, utilisez la commande suivante :

    sudo docker ps
    

    Si vous voulez voir le journal du conteneur de simulation d’appareil, exécutez la commande suivante. Remplacez l’ID de conteneur par l’ID de votre conteneur de simulation d’appareil :

    sudo docker logs -f 5d3f3e78822e
    

Exécuter une simulation

Vous pouvez désormais utiliser vos modèles d’appareils personnalisés dans la solution de supervision à distance :

  1. Lancez votre tableau de bord de supervision à distance.

  2. Utilisez la page Appareils pour ajouter des appareils simulés. Lorsque vous ajoutez un nouvel appareil simulé, vous pouvez choisir parmi vos nouveaux modèles d’appareils.

  3. Vous pouvez utiliser le tableau de bord pour afficher la télémétrie de l’appareil et appeler des méthodes de l’appareil.

Nettoyer les ressources

Si vous envisagez d’explorer davantage, laissez l’accélérateur de solution de supervision à distance déployé.

Si vous n’avez plus besoin de l’accélérateur de solution, supprimez-le.

Étapes suivantes

Ce guide vous a montré comment déployer des modèles d’appareils personnalisés sur l’accélérateur de solution de supervision à distance. Nous vous suggérons à présent de découvrir comment connecter un appareil réel à votre solution de supervision à distance.