Quickstart: IoT Hub Device Provisioning Service (DPS) instellen met een ARM-sjabloon
U kunt een Azure Resource Manager-sjabloon (ARM-sjabloon) gebruiken voor het programmatisch instellen van de benodigde Azure-cloudresources voor het inrichten van uw apparaten. In deze stappen ziet u hoe u een IoT-hub en een nieuwe IoT Hub Device Provisioning Service maakt met een ARM-sjabloon. De IoT-hub is ook gekoppeld aan de DPS-resource met behulp van de sjabloon. Met deze koppeling kan de DPS-resource apparaten toewijzen aan de hub op basis van het toewijzingsbeleid dat u configureert.
Een Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Voor de sjabloon is declaratieve syntaxis vereist. In declaratieve syntaxis beschrijft u de beoogde implementatie zonder dat u de reeks programmeeropdrachten voor het maken van de implementatie hoeft te schrijven.
Deze quickstart maakt gebruik van Azure Portal en de Azure CLI voor het uitvoeren van de benodigde programmatische stappen voor het maken van een resourcegroep en het implementeren van de sjabloon, maar u kunt ook gewoon PowerShell, .NET, Ruby of andere programmeertalen gebruiken om deze stappen uit te voeren en de sjabloon te implementeren.
Als uw omgeving voldoet aan de vereisten en u al bekend bent met het gebruik van ARM-sjablonen, selecteert u de onderstaande knop Implementeren naar Azure om de sjabloon voor implementatie in de Azure Portal te openen.
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
Vereisten
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie Quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht AZ login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
De sjabloon controleren
De sjabloon die in deze quickstart wordt gebruikt, komt uit Azure-quickstart-sjablonen.
Notitie
Er is momenteel geen ARM-sjabloonondersteuning voor het maken van inschrijvingen met nieuwe DPS-resources. Dit is een veelvoorkomende en begrepen aanvraag die in overweging wordt genomen voor implementatie.
{
"$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'))]"
]
}
]
}
Er worden twee Azure-resources gedefinieerd in de sjabloon hierboven:
- Microsoft.Devices/iothubs: Hiermee wordt een nieuwe Azure IoT Hub gemaakt.
- Microsoft.Devices/provisioningservices: Hiermee wordt een nieuwe Azure-IoT Hub Device Provisioning Service gemaakt waaraan de nieuwe IoT Hub al is gekoppeld.
De sjabloon implementeren
Implementeren met de Portal
Selecteer de volgende afbeelding om u aan te melden bij Azure en de sjabloon te openen voor implementatie. Met de sjabloon maakt u een nieuwe IoT-hub- en DPS-resource. De hub wordt gekoppeld aan de DPS-resource.
Selecteer of voer de volgende waarden in en selecteer Beoordelen en maken.
Gebruik de standaardwaarde voor het maken van de IoT-hub en de DPS-resource, tenzij deze hieronder wordt opgegeven.
Veld Beschrijving Abonnement Selecteer uw Azure-abonnement. Resourcegroep Selecteer Nieuwe maken, voer een unieke naam in voor de resourcegroep en selecteer vervolgens OK. Regio Selecteer een regio voor uw resources. Bijvoorbeeld VS - Oost. Voor tolerantie en betrouwbaarheid raden we u aan te implementeren in een van de regio's die ondersteuning bieden voor Beschikbaarheidszones. Naam van de IoT-hub Voer een naam in voor de IoT Hub die wereldwijd uniek moet zijn binnen de naamruimte .azure-devices.net. U hebt de hubnaam in de volgende sectie nodig wanneer u de implementatie valideert. Naam van inrichtingsservice Voer een naam in voor de nieuwe Device Provisioning Service (DPS)-resource. De naam moet wereldwijd uniek zijn binnen de naamruimte .azure-devices-provisioning.net. U hebt de DPS-naam in de volgende sectie nodig wanneer u de implementatie valideert. Lees de voorwaarden op het volgende scherm. Als u akkoord gaat met alle voorwaarden, selecteert u Maken.
Het kan even duren voordat de implementatie is voltooid.
Naast Azure Portal kunt u ook de Azure PowerShell, Azure CLI en REST API gebruiken. Zie Sjablonen implementeren voor meer informatie over andere implementatiemethoden.
Implementeren met Azure CLI
Voor het gebruik van Azure CLI is versie 2.6 of hoger vereist. Als u de Azure CLI lokaal uitvoert, controleert u uw versie door het volgende uit te voeren: az --version
Meld u aan bij uw Azure-account en selecteer uw abonnement.
Als u de Azure CLI lokaal uitvoert in plaats van deze uit te voeren in de portal, moet u zich aanmelden. Als u zich wilt aanmelden bij de opdrachtprompt, voert u de aanmeldingsopdracht uit:
az login
Volg de instructies om te verifiëren met de code en meld u aan bij uw Azure-account via een webbrowser.
Als u meerdere Azure-abonnementen hebt en u zich aanmeldt bij Azure, hebt u toegang tot alle Azure accounts die zijn gekoppeld aan uw referenties. Gebruik de volgende opdracht om de Azure-accounts weer te geven die u kunt gebruiken:
az account list -o table
Gebruik de volgende opdracht om het abonnement te selecteren dat u wilt gebruiken voor het uitvoeren van de opdrachten voor het maken van uw IoT-hub en DPS-resources. U kunt de naam van het abonnement of de id van de uitvoer van de vorige opdracht gebruiken:
az account set --subscription {your subscription name or id}
Kopieer en plak de volgende opdrachten in uw CLI-prompt. Voer vervolgens de opdrachten uit door op ENTER te drukken.
Tip
De opdrachten vragen om een resourcegroeplocatie. U kunt een lijst met beschikbare locaties weergeven door eerst de volgende opdracht uit te voeren:
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
De opdrachten vragen u om de volgende informatie. Geef elke waarde op en druk op ENTER.
Parameter Beschrijving Projectnaam De waarde van deze parameter wordt gebruikt om een resourcegroep te maken om alle resources te bevatten. De tekenreeks rg
wordt toegevoegd aan het einde van de waarde voor de naam van de resourcegroep.location Deze waarde is de regio waar alle resources zich bevinden. iotHubName Voer een naam in voor de IoT Hub die wereldwijd uniek moet zijn binnen de naamruimte .azure-devices.net. U hebt de hubnaam in de volgende sectie nodig wanneer u de implementatie valideert. provisioningServiceName Voer een naam in voor de nieuwe Device Provisioning Service (DPS)-resource. De naam moet wereldwijd uniek zijn binnen de naamruimte .azure-devices-provisioning.net. U hebt de DPS-naam in de volgende sectie nodig wanneer u de implementatie valideert. Voor het implementeren van de sjabloon wordt de AzureCLI gebruikt. Naast de Azure CLI kunt u ook de Azure PowerShell, Azure Portal en REST API gebruiken. Zie Sjablonen implementeren voor meer informatie over andere implementatiemethoden.
Geïmplementeerde resources bekijken
Voer de volgende opdracht voor het weergeven van resources uit en zoek de nieuwe inrichtingsservice en IoT-hub in de uitvoer om de implementatie te controleren:
az resource list -g "${projectName}rg"
Als u wilt controleren of de hub al is gekoppeld aan de DPS-resource, voert u de volgende opdracht uit DPS-extensie weergeven.
az iot dps show --name <Your provisioningServiceName>
Let op de hubs die zijn gekoppeld aan het
iotHubs
-lid.
Resources opschonen
Andere Quick Starts in deze verzameling zijn op deze Quick Start gebaseerd. Als u van plan bent om door te gaan met de volgende quickstarts of met de zelfstudies, moet u de resources die in deze quickstart zijn gemaakt, niet opschonen. Als u niet van plan bent om door te gaan, kunt u de Azure Portal of Azure CLI gebruiken om de resourcegroep en alle bijbehorende resources te verwijderen.
Als u een resourcegroep en alle bijbehorende resources uit de Azure Portal wilt verwijderen, opent u de resourcegroep en selecteert u Resourcegroep verwijderen en bovenaan.
De resourcegroep die is geïmplementeerd met behulp van Azure CLI verwijderen:
az group delete --name "${projectName}rg"
U kunt ook resourcegroepen en afzonderlijke resources verwijderen met behulp van Azure Portal, PowerShell of REST API's evenals ondersteunde platform-SDK's die zijn gepubliceerd voor Azure Resource Manager of de IoT Hub Device Provisioning Service.
Volgende stappen
In deze quickstart hebt u een IoT-hub en een Device Provisioning Service-exemplaar geïmplementeerd en de twee resources gekoppeld. Als u wilt weten hoe u deze instellingen gebruikt voor het inrichten van een apparaat, gaat u verder met de rest van de quickstart voor het maken van een apparaat.