Démarrage rapide : Configurer le service IoT Hub Device Provisioning avec un modèle ARM
Vous pouvez utiliser un modèle Azure Resource Manager (ARM) pour configurer par programmation les ressources du cloud Azure nécessaires au provisionnement de vos appareils. Ces étapes montrent comment créer un hub IoT et un service IoT Hub Device Provisioning avec un modèle ARM. Le hub IoT est également lié à la ressource DPS utilisant le modèle. Cette liaison permet à la ressource DPS d’affecter des appareils au hub en fonction des stratégies d’allocation que vous configurez.
Un modèle Azure Resource Manager est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration de votre projet. Le modèle utilise la syntaxe déclarative. Vous décrivez le déploiement que vous avez prévu sans écrire la séquence de commandes de programmation pour créer le déploiement.
Dans ce guide de démarrage rapide, vous allez effectuer les étapes de programmation nécessaires pour créer un groupe de ressources et déployer le modèle à l’aide du portail Azure et d’Azure CLI. Toutefois, vous pouvez également utiliser PowerShell, .NET, Ruby ou d’autres langages de programmation pour effectuer ces étapes et déployer votre modèle.
Si votre environnement remplit les conditions préalables et que vous êtes habitué à utiliser les modèles ARM, le fait de sélectionner le bouton Déployer sur Azure a pour effet d’ouvrir le modèle pour un déploiement sur le portail Azure.
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Prérequis
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Vérifier le modèle
Le modèle utilisé dans ce démarrage rapide est tiré des modèles de démarrage rapide Azure.
Notes
Actuellement, le modèle ARM n’est pas pris en charge pour la création d’inscriptions avec de nouvelles ressources DPS. Il s’agit d’une demande fréquente et comprise que nous envisageons d’implémenter dans le futur.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.12.40.16777",
"templateHash": "13184692430416822033"
}
},
"parameters": {
"iotHubName": {
"type": "string",
"metadata": {
"description": "Specify the name of the Iot hub."
}
},
"provisioningServiceName": {
"type": "string",
"metadata": {
"description": "Specify the name of the provisioning service."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Specify the location of the resources."
}
},
"skuName": {
"type": "string",
"defaultValue": "S1",
"metadata": {
"description": "The SKU to use for the IoT Hub."
}
},
"skuUnits": {
"type": "int",
"defaultValue": 1,
"metadata": {
"description": "The number of IoT Hub units."
}
}
},
"variables": {
"iotHubKey": "iothubowner"
},
"resources": [
{
"type": "Microsoft.Devices/IotHubs",
"apiVersion": "2021-07-02",
"name": "[parameters('iotHubName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('skuName')]",
"capacity": "[parameters('skuUnits')]"
},
"properties": {}
},
{
"type": "Microsoft.Devices/provisioningServices",
"apiVersion": "2022-02-05",
"name": "[parameters('provisioningServiceName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('skuName')]",
"capacity": "[parameters('skuUnits')]"
},
"properties": {
"iotHubs": [
{
"connectionString": "[format('HostName={0};SharedAccessKeyName={1};SharedAccessKey={2}', reference(resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName')), '2021-07-02').hostName, variables('iotHubKey'), listkeys(resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName')), '2021-07-02').value[0].primaryKey)]",
"location": "[parameters('location')]"
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName'))]"
]
}
]
}
Deux ressources Azure sont définies dans le modèle précédent :
- Microsoft.Devices/IotHubs : Crée un hub IoT Azure.
- Microsoft.Devices/provisioningServices : Crée un service Azure IoT Hub Device Provisioning avec le nouveau hub IoT qui lui est déjà lié.
Déployer le modèle
Déployer avec le portail
Sélectionnez l’image suivante pour vous connecter à Azure et ouvrir le modèle pour le déploiement. Le modèle crée un hub IoT et une ressource DPS. Le nouveau hub IoT est lié à la ressource DPS.
Sélectionnez ou entrez les valeurs suivantes et sélectionnez Vérifier + Créer.
Sauf indication contraire pour les champs suivants, utilisez la valeur par défaut pour créer le hub IoT et la ressource DPS.
Champ Description Abonnement Sélectionnez votre abonnement Azure. Groupe de ressources Sélectionnez Créer, et entrez un nom unique pour le groupe de ressources, puis sélectionnez OK. Région Sélectionnez une région pour vos ressources. Par exemple, USA Est. Pour la résilience et la fiabilité, nous vous recommandons de déployer sur l’une des régions qui prennent en charge les Zones de disponibilité. Nom du hub IoT Entrez un nom pour le hub IoT qui doit être globalement unique dans l’espace de noms .azure-devices.net. Vous aurez besoin du nom du hub dans la section suivante au moment de valider le déploiement. Nom du service de provisionnement Entrez un nom pour la nouvelle ressource Device Provisioning Service (DPS). Le nom doit être globalement unique au sein de l’espace de noms .azure-devices-provisioning.net. Vous aurez besoin du nom DPS dans la section suivante au moment de valider le déploiement. Dans l’écran suivant, lisez les conditions générales. Si vous acceptez toutes les conditions, sélectionnez Créer.
Le déploiement prend quelques instants.
Outre le portail Azure, vous pouvez également utiliser Azure PowerShell, l’interface Azure CLI et l’API REST. Pour découvrir d’autres méthodes de déploiement, consultez Déployer des modèles.
Déployer avec Azure CLI
L’utilisation d’Azure CLI nécessite la version 2.6 ou ultérieure. Si vous exécutez Azure CLI localement, vérifiez votre version en exécutant : az --version
Vous connecter à votre compte Azure et sélectionner votre abonnement.
Si vous exécutez Azure CLI localement au lieu de l’exécuter sur le portail, vous devez vous connecter. Pour vous connecter à l’invite de commande, exécutez la commande login :
az login
Suivez les instructions pour vous authentifier à l’aide du code et vous connecter à votre compte Azure via un navigateur web.
Si vous possédez plusieurs abonnements Azure, la connexion à Azure vous donne accès à tous les abonnements Azure associés à vos informations d’identification. Utilisez la commande pour répertorier les comptes Azure ci-dessous :
az account list -o table
Utilisez la commande suivante pour sélectionner l’abonnement que vous souhaitez utiliser pour exécuter les commandes en vue de créer votre hub IoT et vos ressources DPS. Vous pouvez utiliser le nom de l’abonnement ou l’ID de la sortie de la commande précédente :
az account set --subscription {your subscription name or id}
Copiez et collez les commandes suivantes dans votre invite CLI. Exécutez ensuite les commandes en sélectionnant la touche Entrée.
Conseil
Les commandes vous invitent à renseigner un emplacement de groupe de ressources. Vous pouvez afficher la liste des emplacements disponibles en exécutant d’abord la commande :
az account list-locations -o table
read -p "Enter a project name that is used for generating resource names:" projectName && read -p "Enter the location (i.e. centralus):" location && templateUri="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.devices/iothub-device-provisioning/azuredeploy.json" && resourceGroupName="${projectName}rg" && az group create --name $resourceGroupName --location "$location" && az deployment group create --resource-group $resourceGroupName --template-uri $templateUri && echo "Press [ENTER] to continue ..." && read
Les commandes vous invitent à renseigner les informations suivantes. Indiquez chaque valeur et sélectionnez la touche Entrée.
Paramètre Description Nom du projet La valeur de ce paramètre sert à créer un groupe de ressources qui contiendra toutes les ressources. La chaîne rg
est ajoutée à la fin de la valeur de nom de votre groupe de ressources.location Cette valeur correspond à la région où sont créées toutes les ressources. iotHubName Entrez un nom pour le hub IoT qui doit être globalement unique dans l’espace de noms .azure-devices.net. Vous aurez besoin du nom du hub dans la section suivante au moment de valider le déploiement. provisioningServiceName Entrez un nom pour la nouvelle ressource Device Provisioning Service (DPS). Le nom doit être globalement unique au sein de l’espace de noms .azure-devices-provisioning.net. Vous aurez besoin du nom DPS dans la section suivante au moment de valider le déploiement. Azure CLI sert à déployer le modèle. Outre Azure CLI, vous pouvez aussi utiliser Azure PowerShell, le portail Azure et l’API REST. Pour découvrir d’autres méthodes de déploiement, consultez Déployer des modèles.
Vérifier les ressources déployées
Pour vérifier le déploiement, exécutez la commande suivante pour lister les ressources et recherchez le nouveau service de provisionnement et le hub IoT dans la sortie :
az resource list -g "${projectName}rg"
Pour vérifier que le hub est déjà lié à la ressource DPS, exécutez la commande show suivante de l’extension DPS.
az iot dps show --name <Your provisioningServiceName>
Remarquez les hubs qui sont liés sur le membre
iotHubs
.
Nettoyer les ressources
Les autres démarrages rapides de cette collection reposent sur ce démarrage rapide. Si vous souhaitez continuer à utiliser d’autres démarrages rapides ou les didacticiels, ne nettoyez pas les ressources créées lors de ce démarrage rapide. Si vous n’envisagez pas de continuer, vous pouvez utiliser le portail Azure ou Azure CLI pour supprimer le groupe de ressources et toutes ses ressources.
Pour supprimer un groupe de ressources et toutes ses ressources à partir du portail Azure, ouvrez simplement le groupe de ressources, puis sélectionnez Supprimer le groupe de ressources dans la partie supérieure.
Pour supprimer le groupe de ressources déployé à l’aide d’Azure CLI :
az group delete --name "${projectName}rg"
Vous pouvez également supprimer des groupes de ressources et des ressources individuelles à l’aide de l’une des options suivantes :
- Portail Azure
- PowerShell
- API REST
- Kits de développement logiciel (SDK) des plateformes prises en charge publiés pour Azure Resource Manager ou IoT Hub Device Provisioning Service
Étapes suivantes
Dans ce guide de démarrage rapide, vous avez déployé un hub IoT et une instance du service Device Provisioning, puis vous avez lié ces deux ressources. Pour savoir comment utiliser cette configuration pour provisionner un appareil, passez au démarrage rapide traitant de la création d’un appareil.