Comment lier et gérer des hubs IoT

Azure IoT Hub Device Provisioning Service (DPS) peut approvisionner des appareils sur un ou plusieurs hubs IoT. Pour que DPS puisse approvisionner des appareils sur un hub IoT, il doit être lié à votre instance DPS. Une fois lié, un hub IoT peut être utilisé dans une stratégie d’allocation. Les stratégies d’allocation déterminent la façon dont les appareils sont affectés aux hubs IoT par DPS. Cet article fournit des instructions sur la façon de lier des hubs IoT et de les gérer dans votre instance DPS.

Hubs IoT liés et stratégies d’allocation

Le service DPS peut uniquement provisionner des appareils sur des hubs IoT auxquels il est lié. La liaison d’un hub IoT à une instance DPS donne aux services des autorisations de lecture/écriture sur le registre d’appareils d’IoT Hub. Avec ces autorisations, DPS peut inscrire un ID d’appareil et définir la configuration initiale dans le jumeau d’appareil. Les hubs IoT liés peuvent se trouver dans n’importe quelle région Azure. Vous pouvez lier des hubs d’autres abonnements à votre instance DPS.

Une fois qu’un hub IoT est lié à DPS, il est éligible pour participer à l’allocation. Sa participation à l’allocation (le cas échéant) dépend des paramètres de l’inscription via laquelle un appareil est approvisionné et des paramètres sur le hub IoT lié lui-même.

Les paramètres suivants contrôlent la façon dont DPS utilise les hubs IoT liés :

  • Chaîne de connexion : définit la chaîne de connexion IoT Hub que DPS utilise pour se connecter au hub IoT lié. La chaîne de connexion est basée sur l’une des stratégies d’accès partagé du hub IoT. DPS a besoin des autorisations suivantes sur le hub IoT : RegistryWrite et ServiceConnect. La chaîne de connexion doit être pour une stratégie d’accès partagé qui dispose de ces autorisations. Pour en savoir plus sur les stratégies d’accès partagé IoT Hub, consultez Contrôle d’accès et autorisations IoT Hub.

  • Pondération de l’allocation : détermine la probabilité qu’un hub IoT soit sélectionné lorsque DPS hache l’affectation d’appareil sur un ensemble de hubs IoT. La valeur peut être comprise entre 1 et 1000. La valeur par défaut est 1 (ou null). Des valeurs plus élevées augmentent la probabilité de sélection du hub IoT.

  • Appliquer une stratégie d’allocation : définit si le hub IoT participe à la stratégie d’allocation. La valeur par défaut de ce paramètre est Oui (true). Si vous choisissez Non (false), les appareils ne sont pas attribués au hub IoT. Le hub IoT peut toujours être sélectionné lors d’une inscription, mais il ne participe pas à l’allocation. Vous pouvez utiliser ce paramètre pour empêcher temporairement ou définitivement un hub IoT de participer à l’allocation ; par exemple, s’il approche du nombre autorisé d’appareils.

Pour en savoir plus sur les stratégies d’allocation DPS et la façon dont les hubs IoT liés y participent, consultez Gérer les stratégies d’allocation.

Ajouter un hub IoT lié

Lorsque vous liez un hub IoT à votre instance DPS, il devient disponible pour participer à l’allocation. Vous pouvez ajouter des hubs IoT qui se trouvent à l’intérieur ou à l’extérieur de votre abonnement. Lorsque vous liez un hub IoT, il peut ou non être disponible pour les allocations dans les inscriptions existantes :

  • Pour les inscriptions qui ne définissent pas explicitement les hubs IoT auxquels appliquer la stratégie d’allocation, un hub IoT nouvellement lié commence immédiatement à participer à l’allocation.

  • Pour les inscriptions qui définissent explicitement les hubs IoT auxquels appliquer la stratégie d’allocation, vous devez ajouter manuellement ou par programmation le nouveau hub IoT aux paramètres d’inscription pour qu’il participe à l’allocation.

Limites

Dans le Portail Azure, vous pouvez lier un hub IoT à partir du menu de gauche de votre instance DPS ou de l’inscription lors de la création ou de la mise à jour d’une inscription. Dans les deux cas, le hub IoT est limité à l’instance DPS (pas seulement l’inscription).

Pour lier un hub IoT à votre instance DPS dans le Portail Azure :

  1. Dans le menu de gauche de votre instance DPS, sélectionnez Hubs IoT liés.

  2. En haut de la page, sélectionnez + Ajouter.

  3. Dans la page Ajouter un lien à IoT Hub, sélectionnez l’abonnement qui contient le hub IoT, puis choisissez le nom du hub IoT dans la liste IoT Hub.

  4. Après avoir sélectionné le hub IoT, choisissez une stratégie d’accès que DPS utilisera pour se connecter au hub IoT. La liste Stratégie d’accès affiche toutes les stratégies d’accès partagé définies sur le hub IoT sélectionné qui ont à la fois des autorisations RegistryWrite et ServiceConnect définies. La valeur par défaut est la stratégie iothubowner. Cliquez sur la stratégie que vous souhaitez utiliser.

  5. Cliquez sur Enregistrer.

Lorsque vous créez ou mettez à jour une inscription, vous pouvez utiliser le bouton Lier un nouveau hub IoT sur l’inscription. Vous verrez la même page et les mêmes choix que ci-dessus. Une fois que vous avez enregistré le hub lié, il est disponible sur votre instance DPS et peut être sélectionné à partir de votre inscription.

Remarque

Dans le Portail Azure, vous ne pouvez pas définir les paramètres Pondération d’allocation et Appliquer la stratégie d’allocation lorsque vous ajoutez un hub IoT lié. Au lieu de cela, vous pouvez mettre à jour ces paramètres une fois que le hub IoT est lié. Pour plus d’informations, consultez Mettre à jour un hub IoT lié.

Utilisez la commande Azure CLI az iot dps linked-hub create pour lier un hub IoT à votre instance DPS.

Par exemple, la commande suivante lie un hub IoT nommé MyExampleHub à l’aide d’une chaîne de connexion pour sa stratégie d’accès partagé iothubowner. Cette commande conserve les paramètres Pondération d’allocation et Appliquer la stratégie d’allocation à leurs valeurs par défaut, mais vous pouvez spécifier des valeurs pour ces paramètres si vous le souhaitez.

az iot dps linked-hub create --dps-name MyExampleDps --resource-group MyResourceGroup --connection-string "HostName=MyExampleHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=XNBhoasdfhqRlgGnasdfhivtshcwh4bJwe7c0RIGuWsirW0=" --location westus

DPS prend également en charge la liaison de hubs IoT à l’aide de l’API REST Créer ou mettre à jour des ressources DPS, de modèles Resource Manager et de SDK de gestion de DPS.

Mettre à jour un hub IoT lié

Vous pouvez mettre à jour les paramètres d’un hub IoT lié pour modifier son poids d’allocation, déterminer s’il peut y avoir des stratégies d’allocation appliquées et changer la chaîne de connexion utilisée par DPS pour s’y connecter. Lorsque vous mettez à jour les paramètres d’un hub IoT, les modifications prennent effet immédiatement, que le hub IoT soit spécifié lors d’une inscription ou utilisé par défaut.

Utiliser le Portail Azure pour mettre à jour un hub IoT lié

Dans le Portail Azure, vous pouvez mettre à jour les paramètres Pondération de l’allocation et Appliquer la stratégie d’allocation.

Pour mettre à jour les paramètres d’un hub IoT lié à l’aide du Portail Azure :

  1. Dans le menu de gauche de votre instance DPS, sélectionnez Hubs IoT liés, puis le hub IoT dans la liste.

  2. Dans la page Détails du hub IoT lié :

    Screenshot that shows the linked IoT hub details page. .

    • Utilisez le curseur ou la zone de texte Pondération de l’allocation pour choisir un poids compris entre 1 et 1000. La valeur par défaut est 1.

    • Définissez le commutateur Appliquer la stratégie d’allocation pour spécifier si le hub IoT lié doit être inclus dans l’allocation.

  3. Enregistrez vos paramètres.

Remarque

Vous ne pouvez pas mettre à jour la chaîne de connexion que DPS utilise pour se connecter au hub IoT à partir du Portail Azure. Au lieu de cela, vous pouvez utiliser Azure CLI pour mettre à jour la chaîne de connexion, ou vous pouvez supprimer le hub IoT lié de votre instance DPS et le lier à nouveau. Pour plus d’informations, consultez Mettre à jour les clés pour les hubs IoT liés.

Utiliser Azure CLI pour mettre à jour un hub IoT lié

Avec Azure CLI, vous pouvez mettre à jour les paramètres Pondération d’allocation, Appliquer la stratégie d’allocation et Chaîne de connexion.

Utilisez la commande az iot dps linked-hub update pour mettre à jour la pondération d’allocation ou appliquer les paramètres des stratégies d’allocation. Par exemple, la commande suivante définit le poids d’allocation et applique la stratégie d’allocation pour un hub IoT lié :

az iot dps linked-hub update --dps-name MyExampleDps --resource-group MyResourceGroup --linked-hub MyExampleHub --allocation-weight 2 --apply-allocation-policy true

Utilisez la commande az iot dps update pour mettre à jour la chaîne de connexion d’un hub IoT lié. Vous pouvez utiliser le paramètre --set ainsi que la chaîne de connexion pour la stratégie d’accès partagé IoT Hub que vous souhaitez utiliser. Pour plus d’informations, consultez Mettre à jour les clés pour les hubs IoT liés.

DPS prend également en charge la mise à jour de hubs IoT liés à l’aide de l’API REST Créer ou mettre à jour la ressource DPS, de modèles Resource Manager et de SDK de gestion DPS.

Supprimer un hub IoT lié

Lorsque vous supprimez un hub IoT lié de votre instance DPS, il ne sera plus disponible pour les futures inscriptions. Toutefois, il peut ou non être supprimé des allocations dans les inscriptions existantes :

  • Pour les inscriptions qui ne définissent pas explicitement les hubs IoT auxquels appliquer la stratégie d’allocation, un hub IoT lié supprimé n’est plus disponible pour l’allocation.

  • Pour les inscriptions qui définissent explicitement les hubs IoT auxquels appliquer la stratégie d’allocation, vous devez supprimer manuellement ou par programmation le hub IoT des paramètres d’inscription pour qu’il soit supprimé de la participation à l’allocation. Si vous ne le faites pas, une erreur peut se produire lorsqu’un appareil tente de s’approvisionner via l’inscription.

Utiliser le Portail Azure pour supprimer un hub IoT lié

Pour supprimer un hub IoT lié de votre instance DPS dans le Portail Azure :

  1. Dans le menu de gauche de votre instance DPS, sélectionnez Hubs IoT liés.

  2. Dans la liste des hubs IoT, activez la case à cocher en regard du ou des hubs IoT que vous souhaitez supprimer. Sélectionnez ensuite Supprimer en haut de la page et confirmez votre choix lorsque vous y êtes invité.

Utiliser Azure CLI pour supprimer un hub IoT lié

Utilisez la commande az iot dps linked-hub delete pour supprimer un hub IoT lié de l’instance DPS. Par exemple, la commande suivante supprime le hub IoT nommé MyExampleHub :

az iot dps linked-hub delete --dps-name MyExampleDps --resource-group MyResourceGroup --linked-hub MyExampleHub

DPS prend également en charge la suppression des hubs IoT liés de l’instance DPS à l’aide de l’API REST Créer ou mettre à jour la ressource DPS, de modèles Resource Manager et de SDK de gestion DPS.

Mettre à jour les clés pour les hubs IoT liés

Il peut s’avérer nécessaire de faire pivoter ou de mettre à jour les clés symétriques d’un hub IoT lié à DPS. Dans ce cas, vous devez également mettre à jour le paramètre de chaîne de connexion dans DPS pour le hub IoT lié. Notez que l’approvisionnement d’un hub IoT échoue pendant l’intervalle entre la mise à jour d’une clé sur le hub IoT et la mise à jour de votre instance DPS avec la nouvelle chaîne de connexion basée sur cette clé. Pour cette raison, nous vous recommandons d’utiliser Azure CLI pour mettre à jour vos clés, car vous pouvez mettre à jour la chaîne de connexion sur le hub lié. Avec le Portail Azure, vous devez supprimer le hub IoT de votre instance DPS, puis le lier à nouveau afin de mettre à jour la chaîne de connexion.

Utiliser le Portail Azure pour mettre à jour les clés

Vous ne pouvez pas mettre à jour le paramètre de chaîne de connexion pour un hub IoT lié lors de l’utilisation du Portail Azure. Au lieu de cela, vous devez supprimer le hub IoT lié de votre instance DPS, puis le rajouter.

Pour mettre à jour des clés symétriques pour un hub IoT lié dans le Portail Azure :

  1. Dans le menu de gauche de votre instance DPS dans le Portail Azure, sélectionnez le hub IoT pour lequel vous souhaitez mettre à jour la ou les clés.

  2. Dans la page Détails du hub IoT lié, notez les valeurs pour Pondération d’allocation et Appliquer la stratégie d’allocation. Vous aurez besoin de ces valeurs lorsque vous lierez de nouveau le hub IoT à votre instance DPS ultérieurement. Ensuite, sélectionnez Gérer la ressource pour accéder au hub IoT.

  3. Dans le menu de gauche du hub IoT, sous Paramètres de sécurité, sélectionnez Stratégies d’accès partagé.

  4. Dans Stratégies d’accès partagé, sous Gérer les stratégies d’accès partagé, sélectionnez la stratégie que votre instance DPS utilise pour se connecter au hub IoT lié.

  5. En haut de la page, sélectionnez Régénérer la clé primaire, Régénérer la clé secondaire ou Permuter les clés, puis confirmez votre choix lorsque vous y êtes invité.

  6. Revenez à votre instance DPS.

  7. Suivez les étapes décrites dans Supprimer un hub IoT pour supprimer le hub IoT de votre instance DPS.

  8. Suivez les étapes décrites dans Lier un hub IoT pour lier à nouveau le hub IoT à votre instance DPS avec la nouvelle chaîne de connexion pour la stratégie.

  9. Si vous devez restaurer la pondération d’allocation et appliquer les paramètres de stratégie d’allocation, suivez les étapes décrites dans Mettre à jour un hub IoT lié à l’aide des valeurs que vous avez enregistrées à l’étape 2.

Utiliser Azure CLI pour mettre à jour les clés

Pour mettre à jour des clés symétriques pour un hub IoT lié avec Azure CLS :

  1. Utilisez la commande az iot hub policy renew-key pour échanger ou régénérer les clés symétriques pour la stratégie d’accès partagé sur le hub IoT. Par exemple, la commande suivante renouvelle la clé primaire pour la stratégie d’accès partagé iothubowner sur un hub IoT :

    az iot hub policy renew-key --hub-name MyExampleHub --name owner --rk primary
    
  2. Utilisez la commande az iot hub connection-string show pour obtenir la nouvelle chaîne de connexion pour la stratégie d’accès partagé. Par exemple, la commande suivante obtient la chaîne de connexion principale pour la stratégie d’accès partagé iothubowner pour laquelle la clé primaire a été régénérée dans la commande précédente :

    az iot hub connection-string show --hub-name MyExampleHub --policy-name owner --key-type primary
    
  3. Utilisez la commande az iot dps linked-hub list pour rechercher la position du hub IoT dans la collection de hubs IoT liés pour votre instance DPS. Par exemple, la commande suivante obtient la chaîne de connexion principale pour la stratégie d’accès partagé owner pour laquelle la clé primaire a été régénérée dans la commande précédente :

    az iot dps linked-hub list --dos-name MyExampleDps
    

    La sortie affiche la position du hub IoT lié pour lequel vous souhaitez mettre à jour la chaîne de connexion dans le tableau des hubs IoT liés gérés par votre instance DPS. Dans ce cas, il s’agit du premier hub IoT de la liste, MyExampleHub.

    [
    {
        "allocationWeight": null,
        "applyAllocationPolicy": null,
        "connectionString": "HostName=MyExampleHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=****",
        "location": "centralus",
        "name": "MyExampleHub.azure-devices.net"
    },
    {
        "allocationWeight": null,
        "applyAllocationPolicy": null,
        "connectionString": "HostName=MyExampleHub-2.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=****",
        "location": "centralus",
        "name": "NyExampleHub-2.azure-devices.net"
    }
    ]
    
  4. Utilisez la commande az iot dps update pour mettre à jour la chaîne de connexion pour le hub IoT lié. Vous utilisez le paramètre --set et la position du hub IoT lié dans la table properties.iotHubs[] pour cibler le hub IoT. Par exemple, la commande suivante met à jour la chaîne de connexion pour MyExampleHub retournée en premier dans la commande précédente :

    az iot dps update --name MyExampleDps --set properties.iotHubs[0].connectionString="HostName=MyExampleHub-2.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=NewTokenValue"
    

Étapes suivantes