Partager via


Créer et supprimer des routes et des points de terminaison avec Azure Resource Manager

Cet article vous montre comment exporter votre modèle Azure IoT Hub, ajouter une route à votre hub IoT, puis redéployer le modèle dans votre hub IoT en utilisant Azure CLI ou Azure PowerShell. Utilisez un modèle Azure Resource Manager pour créer des routes et des points de terminaison pour Azure Event Hubs, des files d’attente et des rubriques Azure Service Bus, et Stockage Azure.

Les modèles Azure Resource Manager sont utiles lorsque vous voulez définir des ressources en utilisant un fichier JSON. Chaque ressource Azure a un modèle qui définit les composants utilisés dans cette ressource. Vous pouvez exporter tous les modèles de ressources Azure.

Important

Lorsque vous utilisez un modèle Resource Manager pour déployer une ressource, le modèle remplace toute ressource existante du type que vous déployez.

Lorsque vous créez un hub IoT, le remplacement d’une ressource déployée existante n’est pas un problème. Pour créer un hub IoT, vous pouvez utiliser un modèle de base qui a les propriétés requises au lieu d’exporter un modèle existant à partir d’un hub IoT qui est déjà déployé.

Toutefois, si vous ajoutez une route à un modèle Resource Manager IoT Hub existant, utilisez un modèle que vous exportez à partir de votre hub IoT pour vous assurer que toutes les ressources et propriétés existantes restent connectées après le déploiement du modèle mis à jour. Les ressources déjà déployées ne seront pas remplacées. Par exemple, un modèle Resource Manager exporté que vous aviez déployé peut contenir des informations de stockage pour votre hub IoT, si vous l’avez connecté au stockage.

Pour en savoir plus sur le fonctionnement du routage dans IoT Hub, consultez Utiliser le routage des messages IoT Hub pour envoyer des messages appareil-à-cloud à différents points de terminaison. Pour suivre les étapes de la configuration d’une route qui envoie des messages au stockage et le test sur un appareil simulé, consultez Tutoriel : Envoyer des données d’appareil au Stockage Azure à l’aide du routage des messages IoT Hub.

Prérequis

Les procédures décrites dans l’article utilisent les ressources suivantes :

  • Un modèle Azure Resource Manager
  • Un hub IoT
  • Un service de point de terminaison dans Azure

Modèle Azure Resource Manager

Cet article utilise un modèle Azure Resource Manager dans le portail Azure pour travailler avec IoT Hub et d’autres services Azure. Pour en savoir plus sur l’utilisation des modèles Resource Manager, consultez Que sont les modèles Azure Resource Manager ?

hub IOT

Pour créer un itinéraire IoT Hub, vous avez besoin d’un hub IoT que vous avez créé à l’aide de Azure IoT Hub. Les messages d’appareil et les journaux des événements proviennent de votre hub IoT.

Veillez à disposer de la ressource hub suivante à utiliser lorsque vous créez votre itinéraire IoT Hub :

Service de point de terminaison

Pour créer un itinéraire IoT Hub, vous avez besoin d’au moins un autre service Azure à utiliser comme point de terminaison de l’itinéraire. Le point de terminaison reçoit les messages d’appareil et les journaux des événements. Vous pouvez choisir le service Azure à utiliser comme point de terminaison afin de vous connecter à votre route IoT Hub : Event Hubs, files d’attente ou rubriques Service Bus, ou Stockage Azure.

Veillez à avoir une des ressources suivantes à utiliser lorsque vous créez un point de terminaison pour votre route IoT Hub :

Créer un itinéraire

Dans IoT Hub, vous pouvez créer un itinéraire pour envoyer des messages ou capturer des événements. Chaque itinéraire a une source de données et un point de terminaison. La source de données est l’origine des messages ou des journaux des événements. Le point de terminaison est l’endroit où se terminent les messages ou les journaux d’événements. Vous choisissez des emplacements pour la source de données et le point de terminaison lorsque vous créez un itinéraire dans votre hub IoT. Ensuite, vous utilisez les requêtes de routage pour filtrer les messages ou les événements avant qu’ils n’accèdent au point de terminaison.

Vous pouvez utiliser un hub d’événements, une file d’attente ou une rubrique Service Bus, ou un compte Stockage Azure comme point de terminaison pour votre route de hub IoT. Le service que vous utilisez pour créer votre point de terminaison doit d’abord exister dans votre compte Azure.

Exporter le modèle Resource Manager à partir de votre hub IoT

Commençons par exporter un modèle Resource Manager à partir de votre hub IoT, puis ajoutons-lui une route.

  1. Accédez à votre IoT Hub dans le Portail Azure. Dans le menu de ressource, sous Automatisation, sélectionnez Exporter le modèle.

    Capture d’écran montrant l’emplacement de l’option Exporter le modèle dans le menu d’une ressource IoT Hub.

  2. Dans Exporter le modèle, sous l’onglet Modèle, suivez ces étapes :

    1. Consultez le fichier JSON généré pour votre hub IoT.

    2. Décochez la case Inclure les paramètres.

    3. Sélectionnez Télécharger pour télécharger une copie locale du fichier JSON.

    Capture d’écran montrant l’emplacement du bouton Télécharger dans le volet Exporter le modèle.

    Le modèle présente plusieurs espaces réservés que vous pouvez utiliser pour ajouter des fonctionnalités ou des services à votre hub IoT. Pour cet article, ajoutez des valeurs uniquement aux propriétés qui sont dans ou imbriquées sous routing.

Ajouter un nouveau point de terminaison à votre modèle Resource Manager

Dans le fichier JSON, recherchez la propriété "endpoints": [] qui est imbriquée sous "routing". Effectuez les étapes pour ajouter un nouveau point de terminaison en fonction du service Azure que vous choisissez pour le point de terminaison : Event Hubs, rubriques ou files d’attente Service Bus ou Stockage Azure.

Pour apprendre à créer une ressource Event Hubs (avec conteneur), consultez Démarrage rapide : Créer un Event Hub à l’aide d’un modèle Resource Manager.

Dans le portail Azure, récupérez votre chaîne de connexion principale à partir de votre ressource Event Hubs. Dans le volet Stratégies d’accès partagé de la ressource, sélectionnez l’une de vos stratégies pour voir les informations de clé et de chaîne de connexion. Ajoutez votre nom de hub d’événements au chemin de l’entité à la fin de la chaîne de connexion. Par exemple, utilisez ;EntityPath=my-event-hubs. Il s’agit du nom de votre hub d’événements, et non de votre nom d’espace de noms.

Pour name, utilisez une valeur unique pour votre point de terminaison Event Hubs. Laissez le paramètre id comme chaîne vide. Le service Azure fournit une valeur id lorsque vous déployez le point de terminaison.

"routing": {
   "endpoints": {
      "serviceBusQueues": [],
      "serviceBusTopics": [],
      "eventHubs": [
            {
               "connectionString": "my Event Hubs connection string + entity path",
               "authenticationType": "keyBased",
               "name": "my-event-hubs-endpoint",
               "id": "",
               "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
               "resourceGroup": "my-resource-group"
            }
      ],
      "storageContainers": [],
      "cosmosDBSqlCollections": []
   },
},

Ajouter un nouvel itinéraire à votre modèle Resource Manager

Dans le fichier JSON, recherchez la propriété "routes": [], imbriquée sous "routing", puis ajoutez la nouvelle route suivante, en fonction du service de point de terminaison que vous avez choisi : Event Hubs, file d’attentes ou rubriques Service Bus, ou Stockage Azure.

La route de repli par défaut collecte les messages de DeviceMessages. Choisissez une autre option, comme DeviceConnectionStateEvents. Pour plus d’informations sur les options sources, consultez az iot hub route.

Attention

Si vous remplacez les valeurs existantes de "routes" par les valeurs de routage utilisées dans les exemples de code suivants, les routes existantes sont supprimées lors de votre déploiement. Pour conserver les routes existantes, ajoutez l’objet de la nouvelle route à la liste "routes".

Pour plus d’informations sur le modèle, consultez Définition de ressource de modèle Azure Resource Manager.

"routes": [
    {
        "name": "MyIotHubRoute",
        "source": "DeviceConnectionStateEvents",
        "condition": "true",
        "endpointNames": [
        "my-event-hubs-endpoint"
        ],
        "isEnabled": true
    }
],

Enregistrez votre fichier JSON.

Déployer le modèle Resource Manager

Une fois votre nouveau point de terminaison et votre itinéraire ajoutés au modèle Resource Manager, vous pouvez maintenant redéployer le fichier JSON dans votre hub IoT.

Déploiement local

az deployment group create \
  --name my-iot-hub-template \
  --resource-group my-resource-group \
  --template-file "my\path\to\template.json"

Déploiement Azure Cloud Shell

Dans la mesure où Azure Cloud Shell s’exécute dans un navigateur web, vous pouvez charger le fichier de modèle avant d’exécuter la commande de déploiement. Une fois le fichier chargé, vous avez seulement besoin du nom du fichier de modèle (au lieu du chemin de fichier entier) à utiliser dans le paramètre template-file.

Capture d’écran montrant l’emplacement du bouton dans Azure Cloud Shell permettant de charger un fichier.

az deployment group create \
  --name my-iot-hub-template \
  --resource-group my-resource-group \
  --template-file "template.json"

Notes

En cas d’échec du déploiement, utilisez le commutateur -verbose pour obtenir des informations sur les ressources que vous créez. Utilisez le commutateur -debug pour obtenir des informations supplémentaires sur le débogage.

Confirmer le déploiement

Pour confirmer que votre modèle a été correctement déployé sur Azure, dans le portail Azure, accédez à votre ressource de groupe de ressources. Dans le menu de la ressource, sous Paramètres, sélectionnez Déploiements pour voir le modèle dans une liste de vos déploiements.

Capture d’écran montrant la liste des déploiements d’une ressource dans le portail Azure, avec un modèle de test mis en évidence.

Pour voir votre nouvelle route dans le portail Azure, accédez à votre ressource IoT Hub. Dans le volet Routage des messages, sous l’onglet Routes, vérifiez que votre route est listée.

Étapes suivantes

Dans cet article pratique, vous avez appris à créer un itinéraire et un point de terminaison pour votre instance Event Hubs, votre file d’attente ou vos rubriques Service Bus, et le Stockage Azure.

Pour en savoir plus sur le routage des messages, consultez Tutoriel : Envoyer des données d’appareil au Stockage Azure à l’aide de IoT Hub routage des messages. Dans le tutoriel, vous allez créer un itinéraire de stockage et le tester avec un appareil dans votre hub IoT.