Guide pratique pour provisionner des appareils sur des hubs IoT en utilisant des stratégies d’allocation

Le service Azure IoT Hub Device Provisioning (DPS) prend en charge plusieurs stratégies d’allocation intégrées qui déterminent la façon dont il attribue des appareils sur un ou plusieurs hubs IoT. DPS inclut également la prise en charge des stratégies d’allocation personnalisées, qui vous permettent de créer et d’utiliser vos propres stratégies d’allocation quand votre scénario IoT nécessite des fonctionnalités non fournies par les stratégies intégrées.

Cet article vous aide à comprendre comment utiliser et gérer les stratégies d’allocation DPS.

Comprendre les stratégies d’allocation

Les stratégies d’allocation déterminent la façon dont DPS attribue des appareils à un hub IoT. Chaque instance DPS a une stratégie d’allocation par défaut, mais cette stratégie peut être remplacée par une stratégie d’allocation définie sur une inscription. Seuls les hubs IoT qui ont été liés à l’instance DPS peuvent participer à l’allocation. La participation d’un hub IoT lié à l’allocation dépend des paramètres de l’inscription par le biais de laquelle un appareil est provisionné.

DPS prend en charge quatre stratégies d’allocation :

  • Distribution uniformément pondérée : les appareils sont provisionnés sur un hub IoT au moyen d’une distribution pondérée. Par défaut, les hubs IoT liés ont le même paramètre de pondération d’allocation ; ils ont donc la même probabilité de se voir attribuer des appareils provisionnés. La pondération d’allocation d’un hub IoT peut être adaptée pour augmenter ou diminuer la probabilité d’attribution. Distribution uniformément pondérée est la stratégie d’allocation par défaut pour une instance DPS. Si vous provisionnez des appareils sur un seul hub IoT, nous vous recommandons de choisir cette stratégie.

  • Latence la plus faible : les appareils sont provisionnés sur le hub IoT ayant la latence la plus faible sur l’appareil. Si plusieurs hubs IoT offrent la latence la plus faible, DPS distribue les appareils entre ces hubs en fonction de leur pondération d’allocation configurée.

  • Configuration statique : les appareils sont provisionnés sur un seul hub IoT, qui doit être spécifié lors de l’inscription.

  • Personnalisé (Utiliser la fonction Azure) : une stratégie d’allocation personnalisée vous donne plus de contrôle sur la façon dont les appareils sont affectés à un hub IoT. Cette attribution s’effectue par l’ajout d’un webhook personnalisé qui est hébergé dans Azure Functions. DPS appelle votre webhook en fournissant toutes les informations appropriées sur l’appareil et l’inscription. Le webhook retourne le hub IoT et le jumeau d’appareil initial (facultatif) qui ont été utilisés pour provisionner l’appareil. Les charges utiles personnalisées peuvent également être transmises à l’appareil et à partir de celui-ci. Pour plus d’informations, consultez Comprendre les stratégies d’allocation personnalisées. Il n’est pas possible de la définir comme stratégie par défaut de l’instance DPS.

Remarque

La liste précédente indique les noms des stratégies d’allocation telles qu’elles apparaissent dans le portail Azure. Quand vous définissez la stratégie d’allocation avec l’API REST DPS, Azure CLI et les SDK du service DPS, elle est appelée comme suit selon le cas :hashed, geolatency, static et custom.

Il existe deux paramètres sur un hub IoT lié qui contrôlent la façon dont il participe à l’allocation :

  • Pondération de l’allocation : définit le poids du hub IoT quand il participe à des stratégies d’allocation impliquant plusieurs hubs IoT. Il peut s’agir d’une valeur comprise entre 1 et 1000. La valeur par défaut est 1 (ou null).

    • Avec la stratégie d’allocation Distribution uniformément pondérée, les hubs IoT auxquels sont associées des valeurs de pondération d’allocation plus élevées ont plus de chances d’être sélectionnés que les autres.

    • Avec la stratégie d’allocation Latence la plus faible, la valeur de pondération d’allocation affecte la probabilité qu’un hub IoT soit sélectionné quand plusieurs hubs IoT répondent à l’exigence de latence la plus faible.

    • Avec une stratégie d’allocation Personnalisée, l’utilisation ou non de la valeur de pondération d’allocation et la façon dont elle est éventuellement utilisée dépendent de la logique du webhook.

  • Appliquer une stratégie d’allocation : spécifie 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 découvrir plus sur la liaison et la gestion de hubs IoT dans votre instance DPS, consultez Lier et gérer des hubs IoT.

Quand un appareil est provisionné par le biais de DPS, le service l’attribue à un hub IoT conformément aux indications suivantes :

  • Si l’inscription spécifie une stratégie d’allocation, utiliser cette stratégie ; sinon, utiliser la stratégie d’allocation par défaut pour l’instance DPS.

  • Si l’inscription spécifie un ou plusieurs hubs IoT, appliquer la stratégie d’allocation sur ces hubs IoT ; sinon, appliquer la stratégie d’allocation sur tous les hubs IoT liés à l’instance DPS. Notez que si la stratégie d’allocation est Configuration statique, l’inscription doit spécifier un hub IoT.

Important

Quand vous changez une stratégie d’allocation ou les hubs IoT auxquels elle s’applique, les modifications affectent uniquement les inscriptions d’appareils ultérieures. Les appareils déjà provisionnés sur un hub IoT ne seront pas affectés. Si vous souhaitez que vos modifications s’appliquent rétroactivement à ces appareils, vous devez les reprovisionner. Pour en savoir plus, consultez Guide pratique pour reprovisionner des appareils.

Définir la stratégie d’allocation par défaut pour l’instance DPS

La stratégie d’allocation par défaut pour l’instance DPS est utilisée quand une stratégie d’allocation n’est pas spécifiée sur une inscription. Seuls Distribution uniformément pondérée, Latence la plus faible et Configuration statique sont pris en charge pour la stratégie d’allocation par défaut. L’allocation Personnalisée n’est pas prise en charge. Quand une instance DPS est créée, sa stratégie par défaut est automatiquement définie sur Distribution uniformément pondérée.

Remarque

Si vous définissez Configuration statique comme stratégie d’allocation par défaut pour une instance DPS, un hub IoT lié doit être spécifié dans les inscriptions qui reposent sur la stratégie par défaut.

Utiliser le portail Azure pour définir la stratégie d’allocation par défaut

Pour définir la stratégie d’allocation par défaut pour l’instance DPS dans le portail Azure :

  1. Dans le menu de gauche de votre instance DPS, sélectionnez Gérer la stratégie d’allocation.

  2. Sélectionnez le bouton correspondant à la stratégie d’allocation que vous souhaitez définir : Latence la plus faible, Distribution uniformément pondérée ou Configuration statique. (L’allocation Personnalisée n’est pas prise en charge pour la stratégie d’allocation par défaut.)

  3. Cliquez sur Enregistrer.

Utiliser Azure CLI pour définir la stratégie d’allocation par défaut

Utilisez la commande Azure CLI az iot dps update pour définir la stratégie d’allocation par défaut pour l’instance DPS. Vous utilisez --set properties.allocationPolicy pour spécifier la stratégie. Par exemple, la commande suivante définit la stratégie d’allocation sur Distribution uniformément pondérée (valeur par défaut) :

az iot dps update --name MyExampleDps --set properties.allocationPolicy=hashed

DPS prend également en charge la définition de la stratégie d’allocation par défaut avec l’API REST Créer ou mettre à jour la ressource DPS, des modèles Resource Manager et les SDK de gestion du service DPS.

Définir la stratégie d’allocation et les hubs IoT pour les inscriptions

Les inscriptions individuelles et les groupes d’inscriptions peuvent spécifier une stratégie d’allocation et les hubs IoT liés auxquels elle doit s’appliquer. Si aucune stratégie d’allocation n’est spécifiée par l’inscription, la stratégie d’allocation par défaut pour l’instance DPS est utilisée.

Dans les deux cas, les conditions suivantes s’appliquent :

  • Pour les stratégies d’allocation Distribution uniformément pondérée, Latence la plus faible et Personnalisée, l’inscription peut spécifier les hubs IoT liés à utiliser. Si aucun hub IoT n’est sélectionné dans l’inscription, tous les hubs IoT liés dans l’instance DPS sont utilisés.

  • Pour Configuration statique, l’inscription doit spécifier un hub IoT unique dans la liste des hubs IoT liés.

Pour les inscriptions individuelles et les groupes d’inscriptions, vous pouvez spécifier une stratégie d’allocation et les hubs IoT liés auxquels l’appliquer quand vous créez ou mettez à jour une inscription.

Utiliser le portail Azure pour gérer la stratégie d’allocation d’inscription et les hubs IoT

Pour définir la stratégie d’allocation et sélectionner des hubs IoT sur une inscription dans le portail Azure :

  1. Dans le menu de gauche de votre instance DPS, sélectionnez Gérer les inscriptions.

  2. Dans la page Gérer les inscriptions :

    • Pour créer une inscription, sélectionnez l’onglet Groupes d’inscriptions ou Inscriptions individuelles, puis ajoutez un groupe d’inscriptions ou Ajoutez une inscription individuelle.

    • Pour mettre à jour une inscription existante, sélectionnez-la dans la liste sous l’onglet Groupes d’inscriptions ou Inscriptions individuelles.

  3. Dans la page Ajouter l’inscription (lors de la création) ou la page détails de l’inscription(à la mise à jour), sélectionnez l’onglet Hubs IoT. Sous cet onglet, vous pouvez sélectionner la stratégie d’allocation que vous souhaitez appliquer à l’inscription et sélectionner les hubs IoT qui doivent être utilisés :

    Screenshot that shows the allocation policy and selected hubs settings on IoT hubs tab.

    1. Sélectionnez les hubs IoT auxquels les appareils peuvent être affectés dans la liste déroulante. Si vous sélectionnez la stratégie d’allocation de configuration statique, vous serez limité à la sélection d’un hub IoT lié unique. Pour toutes les autres stratégies d’allocation, tous les hubs IoT liés sont sélectionnés par défaut, mais vous pouvez modifier cette sélection avec la liste déroulante. Pour que l’inscription utilise automatiquement des hubs IoT liés à mesure qu’ils sont ajoutés à (ou supprimés de) l’instance DPS, désélectionnez tous les hubs IoT.

    2. Si vous le souhaitez, vous pouvez sélectionner le bouton Lier un nouveau hub IoT pour lier un nouveau hub IoT à l’instance DPS et le rendre disponible dans la liste des hubs IoT qui peuvent être sélectionnés. Pour plus d’informations sur la liaison d’un hub IoT, consultez Lier un IoT Hub.

    3. Sélectionnez la stratégie d’allocation à appliquer à l’inscription. La stratégie d’allocation par défaut pour l’instance DPS est sélectionnée par défaut. Pour l’allocation personnalisée, vous devez également spécifier un webhook de stratégie d’allocation personnalisée dans Azure Functions. Pour plus d’informations, consultez le tutoriel Utiliser des stratégies d’allocation personnalisées.

  4. Définissez toutes les autres propriétés nécessaires à l’inscription, puis enregistrez vos paramètres.

Utiliser Azure CLI pour gérer la stratégie d’allocation d’inscription et les hubs IoT

Utilisez les commandes Azure CLI az iot dps enrollment create, az iot dps enrollment update, az iot dps enrollment-group create et az iot dps enrollment-group update pour créer ou mettre à jour des inscriptions individuelles ou des groupes d’inscriptions.

Par exemple, la commande suivante crée un groupe d’inscriptions à clé symétrique qui utilise d’office la stratégie d’allocation par défaut définie sur l’instance DPS et tous les hubs IoT liés à celle-ci :

az iot dps enrollment-group create --dps-name MyExampleDps --enrollment-id MyEnrollmentGroup 

La commande suivante met à jour le même groupe d’inscriptions pour utiliser la stratégie d’allocation Latence la plus faible avec les hubs IoT nommés MyExampleHub et MyExampleHub-2 :

az iot dps enrollment-group update --dps-name MyExampleDps --enrollment-id MyEnrollmentGroup --allocation-policy geolatency --iot-hubs "MyExampleHub.azure-devices.net MyExampleHub-2.azure-devices.net"

DPS prend également en charge la définition de la stratégie d’allocation et des hubs IoT sélectionnés sur l’inscription avec les API REST Créer ou mettre à jour une inscription individuelle et Créer ou mettre à jour un groupe d’inscriptions ainsi qu’avec les SDK du service DPS.

Comportement de l’allocation

Notez le comportement suivant lors de l’utilisation de stratégies d’allocation avec un hub IoT :

  • Avec Azure CLI, l’API REST et les SDK du service DPS, vous pouvez créer des inscriptions sans stratégie d’allocation. Dans ce cas, DPS utilise la stratégie par défaut pour l’instance DPS quand un appareil se provisionne par le biais de l’inscription. Le fait de changer le paramètre de stratégie par défaut sur l’instance DPS change la façon dont les appareils sont provisionnés par le biais de l’inscription.

  • Avec le portail Azure, le paramètre de stratégie d’allocation pour l’inscription est prérempli avec la stratégie d’allocation par défaut. Vous pouvez conserver ce paramètre ou le remplacer par une autre stratégie, mais, quand vous enregistrez l’inscription, la stratégie d’allocation est définie sur l’inscription. Les modifications ultérieures apportées à la stratégie d’allocation par défaut du service ne changent pas la façon dont les appareils sont provisionnés par le biais de l’inscription.

  • Pour les stratégies d’allocation Distribution uniformément pondérée, Latence la plus faible et Personnalisée, vous pouvez configurer l’inscription afin d’utiliser tous les hubs IoT liés à l’instance DPS :

    • Avec Azure CLI et les SDK du service DPS, créez l’inscription sans spécifier de hubs IoT.

    • Avec le portail Azure, l’inscription est préremplie avec tous les hubs IoT liés à l’instance DPS sélectionnée ; désélectionnez tous les hubs IoT avant d’enregistrer l’inscription.

    Si aucun hub IoT n’est sélectionné lors de l’inscription, chaque fois qu’un nouveau hub IoT est lié à l’instance DPS, il participe à l’allocation, et inversement pour un hub IoT qui est supprimé de l’instance DPS.

  • Si des hubs IoT sont spécifiés sur une inscription, leur paramétrage doit y être mis à jour manuellement ou par programmation pour qu’un hub IoT nouvellement lié soit ajouté ou qu’un hub IoT supprimé soit enlevé de l’allocation.

  • Le fait de changer la stratégie d’allocation ou des hubs IoT utilisés pour une inscription affecte uniquement les inscriptions ultérieures via cette inscription. Si vous souhaitez que les modifications affectent les inscriptions précédentes, vous devez reprovisionner tous les appareils inscrits.

Limites

Il existe certaines limitations lors de l’utilisation de stratégies d’allocation et de points de terminaison privés. Pour plus d’informations, consultez Limitations du point de terminaison privé.

Étapes suivantes