Schnellstart: Einrichten von IoT Hub Device Provisioning Service (DPS) mithilfe einer ARM-Vorlage

Sie können eine ARM-Vorlage (Azure Resource Manager) verwenden, um die zum Bereitstellen Ihrer Geräte erforderlichen Azure-Cloudressourcen programmgesteuert einzurichten. Hier erfahren Sie, wie Sie mithilfe einer ARM-Vorlage einen IoT-Hub und eine neue Instanz von IoT Hub Device Provisioning Service erstellen. Außerdem wird der IoT-Hub unter Verwendung der Vorlage mit der DPS-Ressource verknüpft. Dank dieser Verknüpfung kann die DPS-Ressource dem Hub auf der Grundlage der von Ihnen konfigurierten Zuordnungsrichtlinien Geräte zuweisen.

Eine Azure Resource Manager-Vorlage ist eine JSON-Datei (JavaScript Object Notation), die die Infrastruktur und die Konfiguration für Ihr Projekt definiert. Die Vorlage verwendet eine deklarative Syntax. Sie beschreiben Ihre geplante Bereitstellung, ohne die Abfolge der Programmierbefehle zu schreiben, mit denen die Bereitstellung erstellt wird.

Dieser Schnellstart verwendet das Azure-Portal und die Azure-Befehlszeilenschnittstelle, um die programmgesteuerten Schritte zum Erstellen einer Ressourcengruppe und zum Bereitstellen der Vorlage auszuführen. Sie können jedoch auch PowerShell, .NET, Ruby oder andere Programmiersprachen verwenden, um diese Schritte auszuführen und Ihre Vorlage bereitzustellen.

Wenn Ihre Umgebung die Voraussetzungen erfüllt und Sie bereits mit der Verwendung von ARM-Vorlagen vertraut sind, können Sie die Vorlage durch Auswählen der Schaltfläche In Azure bereitstellen für die Bereitstellung im Azure-Portal öffnen.

Button to deploy the Resource Manager template to Azure.

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

Voraussetzungen

  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.

  • Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.

    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.

Überprüfen der Vorlage

Die in dieser Schnellstartanleitung verwendete Vorlage stammt von der Seite mit den Azure-Schnellstartvorlagen.

Hinweis

Derzeit ist keine Unterstützung für ARM-Vorlagen zum Erstellen von Registrierungen mit neuen DPS-Ressourcen vorhanden. Dies wird häufig angefragt und ist uns bewusst. Eine entsprechende Implementierung wird derzeit erwogen.

{
  "$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'))]"
      ]
    }
  ]
}

In der vorigen Vorlage sind zwei Azure-Ressourcen definiert:

Bereitstellen der Vorlage

Bereitstellen über das Portal

  1. Wählen Sie das folgende Abbildung aus, um sich bei Azure anzumelden und die Vorlage für die Bereitstellung zu öffnen. Durch die Vorlage werden ein neuer IoT-Hub und eine neue DPS-Ressource erstellt. Der neue IoT-Hub ist mit der DPS-Ressource verknüpft.

    Button to deploy the Resource Manager template to Azure.

  2. Wählen Sie die folgenden Werte aus, oder geben Sie sie ein, und wählen Sie dann Überprüfen + erstellen aus.

    ARM template deployment parameters on the portal

    Sofern nichts anderes angegeben ist, verwenden Sie jeweils den Standardwert, um den IoT-Hub und die DPS-Ressource zu erstellen.

    Feld BESCHREIBUNG
    Abonnement Wählen Sie Ihr Azure-Abonnement.
    Ressourcengruppe Wählen Sie die Option Neu erstellen aus, und geben Sie einen eindeutigen Namen für die Ressourcengruppe ein. Wählen Sie dann OK aus.
    Region Wählen Sie eine Region für Ihre Ressourcen aus. Beispiel: USA, Osten Für Resilienz und Zuverlässigkeit empfehlen wir, eine der Bereiche bereitzustellen, die Verfügbarkeitszonen unterstützen.
    IoT Hub-Name Geben Sie einen Namen für den IoT-Hub ein. Er muss innerhalb des Namespace .azure-devices.net global eindeutig sein. Sie benötigen den Hubnamen im nächsten Abschnitt beim Überprüfen der Bereitstellung.
    Provisioning Service Name (Name des Bereitstellungsdiensts) Geben Sie einen Namen für die neue DPS-Ressource (Device Provisioning Service) ein. Der Name muss innerhalb des Namespace .azure-devices-provisioning.net global eindeutig sein. Sie benötigen den DPS-Namen im nächsten Abschnitt beim Überprüfen der Bereitstellung.
  3. Lesen Sie sich auf dem nächsten Bildschirm die Bedingungen durch. Wenn Sie mit allen Bedingungen einverstanden sind, wählen Sie Erstellen aus.

    Die Bereitstellung dauert einige Augenblicke.

    Neben dem Azure-Portal können Sie auch Azure PowerShell, die Azure-Befehlszeilenschnittstelle (Azure CLI) und die REST-API verwenden. Informationen zu anderen Bereitstellungsmethoden finden Sie unter Bereitstellen von Vorlagen.

Bereitstellen mit der Azure-Befehlszeilenschnittstelle (Azure CLI)

Wenn Sie die Azure CLI verwenden möchten, benötigen Sie mindestens die Version 2.6. Falls Sie die Azure CLI lokal ausführen, überprüfen Sie Ihre Version mithilfe des folgenden Befehls: az --version

Melden Sie sich bei Ihrem Azure-Konto an, und wählen Sie Ihr Abonnement aus.

  1. Falls Sie die Azure CLI lokal (statt im Portal) ausführen, müssen Sie sich anmelden. Führen Sie zur Anmeldung an der Eingabeaufforderung den Anmeldebefehl aus:

    az login
    

    Befolgen Sie die Anweisungen zur Authentifizierung mit dem Code, und melden Sie sich in einem Webbrowser bei Ihrem Azure-Konto an.

  2. Wenn Sie über mehrere Azure-Abonnements verfügen, erhalten Sie durch die Anmeldung bei Azure Zugriff auf alle Azure-Konten, die mit Ihren Anmeldeinformationen verknüpft sind. Führen Sie den folgenden Befehl aus, um eine Liste der Azure-Konten anzuzeigen, die Sie verwenden können:

    az account list -o table
    

    Verwenden Sie den folgenden Befehl, um das Abonnement auszuwählen, das Sie zum Ausführen der Befehle für die Erstellung Ihres IoT-Hubs und Ihrer DPS-Ressource verwenden möchten. Sie können entweder den Abonnementnamen oder die ID aus der Ausgabe des vorherigen Befehls verwenden:

    az account set --subscription {your subscription name or id}
    
  3. Kopieren Sie die folgenden Befehle, und fügen Sie sie in Ihre CLI-Eingabeaufforderung ein. Führen Sie dann die Befehle aus, indem Sie die EINGABETASTE drücken.

    Tipp

    Von den Befehlen werden Sie zur Eingabe eines Ressourcengruppenstandorts aufgefordert. Sie können zuerst den folgenden Befehl ausführen, um eine Liste der verfügbaren Standorte anzuzeigen:

    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. Von den Befehlen werden Sie zur Eingabe folgender Informationen aufgefordert. Geben Sie jeden Wert an, und wählen Sie die EINGABETASTE aus.

    Parameter BESCHREIBUNG
    Projektname Der Wert dieses Parameters wird verwendet, um eine Ressourcengruppe für alle Ressourcen zu erstellen. Am Ende des Werts für Ihren Ressourcengruppengruppennamen wird die Zeichenfolge „rg“ hinzugefügt.
    location Bei diesem Wert handelt es sich um die Region, in der alle Ressourcen erstellt werden.
    iotHubName Geben Sie einen Namen für den IoT-Hub ein. Er muss innerhalb des Namespace .azure-devices.net global eindeutig sein. Sie benötigen den Hubnamen im nächsten Abschnitt beim Überprüfen der Bereitstellung.
    provisioningServiceName Geben Sie einen Namen für die neue DPS-Ressource (Device Provisioning Service) ein. Der Name muss innerhalb des Namespace .azure-devices-provisioning.net global eindeutig sein. Sie benötigen den DPS-Namen im nächsten Abschnitt beim Überprüfen der Bereitstellung.

    Die Azure-Befehlszeilenschnittstelle wird verwendet, um die Vorlage bereitzustellen. Neben der Azure CLI können Sie auch Azure PowerShell, das Azure-Portal und die REST-API verwenden. Informationen zu anderen Bereitstellungsmethoden finden Sie unter Bereitstellen von Vorlagen.

Überprüfen der bereitgestellten Ressourcen

  1. Führen Sie zum Überprüfen der Bereitstellung den folgenden Befehl zum Auflisten von Ressourcen aus, und suchen Sie in der Ausgabe nach dem neuen Bereitstellungsdienst und dem IoT-Hub:

     az resource list -g "${projectName}rg"
    
  2. Führen Sie den folgenden Befehl zum Anzeigen der DPS-Erweiterung aus, um sich zu vergewissern, dass der Hub bereits mit der DPS-Ressource verknüpft ist:

     az iot dps show --name <Your provisioningServiceName>
    

    Beachten Sie die Hubs, die mit dem Element iotHubs verknüpft sind.

Bereinigen von Ressourcen

Andere Schnellstarts in dieser Sammlung bauen auf diesem Schnellstart auf. Wenn Sie mit den nachfolgenden Schnellstarts oder mit den Tutorials weiterarbeiten möchten, bereinigen Sie nicht die in diesem Schnellstart erstellten Ressourcen. Wenn Sie den Vorgang nicht fortsetzen möchten, können Sie die Ressourcengruppe und alle zugehörigen Ressourcen über das Azure-Portal oder die Azure CLI löschen.

Wenn Sie eine Ressourcengruppe und alle zugehörigen Ressourcen über das Azure-Portal löschen möchten, öffnen Sie einfach die Ressourcengruppe, und wählen Sie im oberen Bereich Ressourcengruppe löschen aus.

Wenn Sie die Ressourcengruppe mithilfe der Azure CLI löschen möchten, verwenden Sie Folgendes:

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

Sie können auch Ressourcengruppen und einzelne Ressourcen mit einer der folgenden Optionen löschen:

  • Azure-Portal
  • PowerShell
  • REST-APIs
  • Unterstützte Plattform-SDKs, die für Azure Resource Manager oder IoT Hub Device Provisioning Service veröffentlicht wurden

Nächste Schritte

In diesem Schnellstart haben Sie einen IoT-Hub und eine Device Provisioning Service-Instanz bereitgestellt sowie die beiden Ressourcen verknüpft. In der Schnellstartanleitung zur Geräteerstellung erfahren Sie, wie Sie diese Einrichtung zum Bereitstellen eines Geräts verwenden.