Delen via


Quickstart: IoT Hub Device Provisioning Service (DPS) instellen met een ARM-sjabloon

U kunt een Azure Resource Manager-sjabloon (ARM-sjabloon) gebruiken om de Azure-cloudresources die nodig zijn voor het inrichten van uw apparaten programmatisch in te stellen. Deze stappen laten zien 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 Azure Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. De sjabloon maakt gebruik van declaratieve syntaxis. U beschrijft de beoogde implementatie zonder de reeks programmeeropdrachten te schrijven om de implementatie te maken.

In deze quickstart worden Azure Portal en de Azure CLI gebruikt om de programmatische stappen uit te voeren die nodig zijn om een resourcegroep te maken en de sjabloon te implementeren. U kunt echter ook PowerShell, .NET, Ruby of andere programmeertalen gebruiken om deze stappen uit te voeren en uw sjabloon te implementeren.

Als uw omgeving voldoet aan de vereisten en u al bekend bent met het gebruik van ARM-sjablonen, wordt de sjabloon voor implementatie in Azure Portal geopend wanneer u de knop Implementeren in Azure selecteert.

Knop voor het implementeren van de Resource Manager-sjabloon in Azure.

Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.

Vereiste voorwaarden

De sjabloon controleren

De sjabloon die in deze quickstart wordt gebruikt, komt uit Azure-snelstartsjablonen.

Opmerking

Er is momenteel geen ARM-sjabloonondersteuning voor het maken van inschrijvingen met nieuwe DPS-resources. Dit is een gemeenschappelijk en begrepen verzoek dat wordt overwogen 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 zijn twee Azure-resources gedefinieerd in de vorige sjabloon:

De sjabloon implementeren

Implementeren met de portal

  1. Selecteer de volgende afbeelding om u aan te melden bij Azure en de sjabloon voor implementatie te openen. Met de sjabloon maakt u een nieuwe IoT-hub en DPS-resource. De nieuwe IoT-hub is gekoppeld aan de DPS-resource.

    Knop voor het implementeren van de Resource Manager-sjabloon in Azure.

  2. Selecteer of voer de volgende waarden in en selecteer Beoordelen en maken.

    Implementatieparameters voor ARM-sjablonen in de portal

    Tenzij anders is opgegeven voor de volgende velden, gebruikt u de standaardwaarde om de IoT Hub- en DPS-resource te maken.

    Veld Beschrijving
    Abonnement Selecteer uw Azure-abonnement.
    Resourcegroep Selecteer Nieuwe maken en 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 om te implementeren in een van de regio's die beschikbaarheidszones ondersteunen.
    IoT Hub-naam Voer een naam in voor de IoT Hub die wereldwijd uniek moet zijn binnen de .azure-devices.net-naamruimte . U hebt de hubnaam nodig in de volgende sectie wanneer u de implementatie valideert.
    Naam van provisioningdienst Voer een naam in voor de nieuwe DPS-resource (Device Provisioning Service). De naam moet globaal uniek zijn binnen de .azure-devices-provisioning.net-naamruimte . U hebt de DPS-naam in de volgende sectie nodig wanneer u de implementatie valideert.
  3. Lees de termen in het volgende scherm. Als u akkoord gaat met alle voorwaarden, selecteert u Maken.

    Het duurt even 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 de 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.

  1. Als u de Azure CLI lokaal uitvoert in plaats van deze uit te voeren in de portal, moet u zich aanmelden. Voer de aanmeldingsopdracht uit om u aan te melden bij de opdrachtprompt:

    az login
    

    Volg de instructies om te verifiëren met de code en meld u aan bij uw Azure-account via een webbrowser.

  2. 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 om de opdrachten uit te voeren om uw IoT Hub- en DPS-resources te maken. 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}
    
  3. Kopieer en plak de volgende opdrachten in de CLI-prompt. Voer vervolgens de opdrachten uit door de Enter-toets te selecteren.

    Aanbeveling

    De opdrachten vragen naar de locatie van een resourcegroep. 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
    
  4. De opdrachten vragen u om de volgende informatie. Geef elke waarde op en selecteer de Enter-toets.

    Kenmerk Beschrijving
    Projectnaam De waarde van deze parameter wordt gebruikt om een resourcegroep te maken voor het opslaan van alle resources. De tekenreeks rg wordt toegevoegd aan het einde van de naam van uw resourcegroep.
    plaats Deze waarde is de regio waarin alle middelen worden gemaakt.
    iotHubName Voer een naam in voor de IoT Hub die wereldwijd uniek moet zijn binnen de .azure-devices.net-naamruimte . U hebt de hubnaam nodig in de volgende sectie wanneer u de implementatie valideert.
    provisioningServiceName Voer een naam in voor de nieuwe DPS-resource (Device Provisioning Service). De naam moet globaal uniek zijn binnen de .azure-devices-provisioning.net-naamruimte . U hebt de DPS-naam in de volgende sectie nodig wanneer u de implementatie valideert.

    De Azure CLI wordt gebruikt om de sjabloon te implementeren. Naast de Azure CLI kunt u ook azure PowerShell, Azure Portal en REST API gebruiken. Zie Sjablonen implementeren voor meer informatie over andere implementatiemethoden.

Geïmplementeerde middelen beoordelen

  1. nl-NL: Als u de implementatie wilt controleren, voert u de volgende opdracht uit om resources weer te geven als lijst en zoekt u in de uitvoer naar de nieuwe inrichtingsservice en IoT-hub.

     az resource list -g "${projectName}rg"
    
  2. Als u wilt controleren of de hub al is gekoppeld aan de DPS-resource, voert u de volgende opdracht voor de DPS-extensie weergeven uit.

     az iot dps show --name <Your provisioningServiceName>
    

    Let op de hubs die zijn gekoppeld aan het iotHubs-lid.

De hulpbronnen 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 Azure Portal of Azure CLI gebruiken om de resourcegroep en alle bijbehorende resources te verwijderen.

Als u een resourcegroep en alle bijbehorende resources uit Azure Portal wilt verwijderen, opent u de resourcegroep en selecteert u Resourcegroep verwijderen en bovenaan.

Ga als volgt te werk om de resourcegroep te verwijderen die is geïmplementeerd met behulp van de Azure CLI:

az group delete --name "${projectName}rg"

U kunt ook resourcegroepen en afzonderlijke resources verwijderen met een van de volgende opties:

  • Azure Portal
  • PowerShell
  • REST API's
  • Ondersteunde platform-SDK's die zijn gepubliceerd voor Azure Resource Manager of 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.