Préparer

Effectué

Ici, nous abordons les objectifs globaux du projet et comment préparer des ressources pour les exercices.

Vue d'ensemble du projet

Dans ce module, vous commencez par créer des ressources Azure requises pour terminer ce module, telles qu’une instance du service de provisionnement des appareils (DPS) et un hub IoT. Vous générez ensuite un certificat d’autorité de certification racine X.509 à l’aide d’OpenSSL dans Azure Cloud Shell et utilisez le certificat racine pour configurer une inscription de groupe dans le service DPS. Ensuite, vous utilisez le certificat racine pour générer deux certificats d’appareil, que vous utilisez dans un code d’appareil simulé pour approvisionner les appareils sur un hub IoT. Dans le code de votre appareil, vous implémentez l’accès aux propriétés de jumeau d’appareil utilisées pour effectuer la configuration initiale de l’appareil. Vous testez ensuite votre appareil simulé. Pour terminer ce module, vous déprovisionnez l’intégralité de l’inscription de groupe.

Paramétrage

Dans le cadre de ce module, les ressources suivantes sont créées :

  • Un hub IoT Azure
  • Une instance du service IoT Hub Device Provisioning Azure
  • Deux appareils simulés en C#

Ressources cloud

Pour effectuer ce projet guidé, vous avez besoin d’un hub IoT et d’une instance de service de provisionnement des appareils liés l’un à l’autre. La création de ces instances de service peut prendre plusieurs minutes.

  1. Commencez par cliquer sur le bouton Activer le bac à sable. Le bac à sable crée automatiquement un groupe de ressources Azure qui s’affiche sur cette page web. Vous créez d’autres ressources pour ce projet en procédant comme suit. Le nom du groupe de ressources est remplacé automatiquement où il est utilisé dans les étapes de code.

    Remarque

    Le bac à sable Azure Cloud Shell expire après 20 minutes d’inactivité. Le bac à sable sera toujours disponible et Cloud Shell peut être réactivé, mais les variables de ligne de commande et d’environnement seront perdues. Vos instances de service IoT Hub et de provisionnement des appareils sont fonctionnelles et disponibles. Veillez à copier ces valeurs comme indiqué à la fin de cette page afin que vous puissiez toujours référencer et entrer les valeurs dans les commandes Cloud Shell à venir si nécessaire.

  2. Installez l’extension Azure IoT pour Azure CLI.

    az extension add --name azure-iot
    
  3. Créez une variable nommée suffix avec un nombre aléatoire que vous utilisez pour les noms de ressources qui doivent être globalement uniques.

    let suffix=$RANDOM*$RANDOM
    echo $suffix
    
  4. Créez un hub IoT dans le nom du groupe de ressources créé par le bac à sable Azure.

    az iot hub create --name hub-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
    
  5. Créez une instance DPS dans le groupe de ressources créé par le bac à sable Azure.

    az iot dps create --name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
    
  6. Obtenez la chaîne de connexion du hub à partir de votre hub IoT, que vous fournissez à l’instance DPS pour lier les deux ressources.

    hubConnectionString=$(az iot hub connection-string show --hub-name hub-$suffix --key-type primary --query connectionString -o tsv)
    echo $hubConnectionString
    
  7. Ajoutez votre hub IoT en tant que hub lié à votre instance DPS. La liaison d’un hub IoT signifie que l’instance DPS peut approvisionner des appareils vers ce hub IoT.

    az iot dps linked-hub create --dps-name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --connection-string $hubConnectionString
    
  8. Une fois le déploiement terminé, ouvrez un outil d’éditeur de texte. Utilisez l’éditeur de texte pour stocker les valeurs de configuration associées à vos ressources Azure au cas où votre bac à sable expire au bout de 20 minutes. Dans votre éditeur de texte, enregistrez les noms et valeurs suivants à utiliser dans les pages de l’unité suivante.

    Nom Valeur
    Nom du groupe ressources Listé sur cette page web
    Suffixe Stocké dans $suffix. Par exemple, une valeur de $suffix est 586732230.
    Chaîne de connexion au hub IoT Stocké dans $hubConnectionString
    Nom de l’IoT Hub hub-$suffix. Par exemple : hub-586732230.
    Nom DPS dps-$suffix. Par exemple : dps-586732230.
    Étendue de l’ID DPS Valeur pour idScope dans les données JSON retournées par la commande az iot dps create que vous avez exécutée à l’étape 5. Par exemple, la valeur de idScope est 0ne0000000.

Ressources de développement

Pour simuler le provisionnement de vos appareils IoT via le service DPS, vous exécutez deux applications C# sur votre ordinateur de développement. Vérifiez que les prérequis suivants sont prêts sur votre ordinateur de développement :