Snabbstart: Konfigurera IoT Hub Device Provisioning Service (DPS) med en ARM-mall
Du kan använda en Azure Resource Manager-mall (ARM-mall) för att programmatiskt konfigurera de Azure-molnresurser som krävs för att etablera dina enheter. De här stegen visar hur du skapar en IoT-hubb och en ny IoT Hub Device Provisioning-tjänst med en ARM-mall. Iot Hub är också länkad till DPS-resursen med hjälp av mallen. Med den här länken kan DPS-resursen tilldela enheter till hubben baserat på de allokeringsprinciper som du konfigurerar.
En Azure Resource Manager-mall är en JSON-fil (JavaScript Object Notation) som definierar infrastrukturen och konfigurationen för projektet. Mallen använder deklarativ syntax. Du beskriver den avsedda distributionen utan att skriva sekvensen med programmeringskommandon för att skapa distributionen.
Den här snabbstarten använder Azure Portal och Azure CLI för att utföra de programmässiga steg som krävs för att skapa en resursgrupp och distribuera mallen. Du kan dock också använda PowerShell, .NET, Ruby eller andra programmeringsspråk för att utföra de här stegen och distribuera mallen.
Om din miljö uppfyller kraven och du redan är bekant med att använda ARM-mallar öppnar du mallen för distribution i Azure Portal genom att välja knappen Distribuera till Azure.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Granska mallen
Mallen som används i den här snabbstarten kommer från Azure-snabbstartsmallar.
Kommentar
För närvarande finns det inget STÖD för ARM-mallar för att skapa registreringar med nya DPS-resurser. Detta är en vanlig och förstådd begäran som övervägs för implementering.
{
"$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'))]"
]
}
]
}
Två Azure-resurser definieras i föregående mall:
- Microsoft.Devices/IotHubs: Skapar en ny Azure IoT-hubb.
- Microsoft.Devices/provisioningServices: Skapar en ny Azure IoT Hub Device Provisioning-tjänst med den nya IoT-hubben redan länkad till den.
Distribuera mallen
Distribuera med portalen
Välj följande bild för att logga in på Azure och öppna mallen för distribution. Mallen skapar en ny Iot-hubb och DPS-resurs. Den nya IoT-hubben är länkad till DPS-resursen.
Välj eller ange följande värden och välj Granska + Skapa.
Om inget annat anges för följande fält använder du standardvärdet för att skapa Iot Hub- och DPS-resursen.
Fält beskrivning Abonnemang Välj din Azure-prenumerationen. Resursgrupp Välj Skapa ny och ange ett unikt namn för resursgruppen och välj sedan OK. Region Välj en region för dina resurser. Till exempel USA, östra. För återhämtning och tillförlitlighet rekommenderar vi att du distribuerar till en av de regioner som stöder Tillgänglighetszoner. Namn på Iot Hub Ange ett namn för IoT Hub som måste vara globalt unikt i namnområdet .azure-devices.net . Du behöver hubbnamnet i nästa avsnitt när du verifierar distributionen. Namn på etableringstjänst Ange ett namn för den nya DPS-resursen (Device Provisioning Service). Namnet måste vara globalt unikt i namnområdet .azure-devices-provisioning.net . Du behöver DPS-namnet i nästa avsnitt när du verifierar distributionen. Läs villkoren på nästa skärm. Om du godkänner alla villkor väljer du Skapa.
Distributionen tar en stund att slutföra.
Förutom Azure Portal kan du även använda Azure PowerShell, Azure CLI och REST API. Mer information om andra distributionsmetoder finns i Distribuera mallar.
Distribuera med Azure CLI
Användning av Azure CLI kräver version 2.6 eller senare. Om du kör Azure CLI lokalt kontrollerar du din version genom att köra: az --version
Logga in på ditt Azure-konto och välj din prenumeration.
Om du kör Azure CLI lokalt i stället för att köra det i portalen måste du logga in. Logga in i kommandotolken genom att köra inloggningskommandot:
az login
Följ instruktionerna för att autentisera med hjälp av koden och logga in på ditt Azure-konto via en webbläsare.
Om du har flera Azure-prenumerationer får du åtkomst till alla Azure-konton som är associerade med dina autentiseringsuppgifter när du loggar in på Azure. Använd följande -kommando för att lista Azure-konton som du kan använda:
az account list -o table
Använd följande kommando för att välja en prenumeration som du vill använda för att köra kommandona för att skapa dina IoT Hub- och DPS-resurser. Du kan antingen använda prenumerationsnamnet eller ID:t från utdata från föregående kommando:
az account set --subscription {your subscription name or id}
Kopiera och klistra in följande kommandon i CLI-prompten. Kör sedan kommandona genom att välja returnyckeln.
Dricks
Kommandotolken för en resursgruppsplats. Du kan visa en lista över tillgängliga platser genom att först köra kommandot:
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
Kommandona uppmanar dig att ange följande information. Ange varje värde och välj returnyckeln.
Parameter Description Projektnamn Värdet för den här parametern används för att skapa en resursgrupp för att lagra alla resurser. Strängen rg
läggs till i slutet av värdet för resursgruppens namn.Plats Det här värdet är den region där alla resurser skapas. iotHubName Ange ett namn för IoT Hub som måste vara globalt unikt i namnområdet .azure-devices.net . Du behöver hubbnamnet i nästa avsnitt när du verifierar distributionen. provisioningServiceName Ange ett namn för den nya DPS-resursen (Device Provisioning Service). Namnet måste vara globalt unikt i namnområdet .azure-devices-provisioning.net . Du behöver DPS-namnet i nästa avsnitt när du verifierar distributionen. Azure CLI används för att distribuera mallen. Förutom Azure CLI kan du även använda Azure PowerShell, Azure Portal och REST API. Mer information om andra distributionsmetoder finns i Distribuera mallar.
Granska distribuerade resurser
Kontrollera distributionen genom att köra följande kommando för att visa resurser och leta efter den nya etableringstjänsten och IoT Hub i utdata:
az resource list -g "${projectName}rg"
Kontrollera att hubben redan är länkad till DPS-resursen genom att köra följande kommando för DPS-tillägget show.
az iot dps show --name <Your provisioningServiceName>
Observera de hubbar som är länkade till
iotHubs
medlemmen.
Rensa resurser
De andra snabbstarterna i den här samlingen bygger på den här snabbstarten. Om du planerar att fortsätta arbeta med efterföljande snabbstarter eller självstudier ska du inte rensa resurserna som skapades i den här snabbstarten. Om du inte planerar att fortsätta kan du använda Azure Portal eller Azure CLI för att ta bort resursgruppen och alla dess resurser.
Om du vill ta bort en resursgrupp och alla dess resurser från Azure Portal öppnar du bara resursgruppen och väljer Ta bort resursgrupp och överst.
Så här tar du bort resursgruppen som distribuerats med Hjälp av Azure CLI:
az group delete --name "${projectName}rg"
Du kan också ta bort resursgrupper och enskilda resurser med något av följande alternativ:
- Azure Portal
- PowerShell
- REST API:er
- Plattforms-SDK:er som stöds publicerade för Azure Resource Manager eller IoT Hub Device Provisioning Service
Nästa steg
I den här snabbstarten distribuerade du en IoT-hubb och en enhetsetableringstjänstinstans och länkade de två resurserna. Om du vill lära dig hur du använder den här konfigurationen för att etablera en enhet fortsätter du till snabbstarten för att skapa en enhet.