Vorbereiten
Hier besprechen wir die allgemeinen Ziele des Projekts und wie Ressourcen für die Übungen vorbereitet werden.
Projektübersicht
In diesem Modul erstellen Sie zunächst Azure-Ressourcen, die zum Abschließen dieses Moduls erforderlich sind, z. B. eine Device Provisioning Service-Instanz (DPS) und einen IoT-Hub. Danach generieren Sie ein X.509-CA-Stammzertifikat mithilfe von OpenSSL innerhalb der Azure Cloud Shell. Danach verwenden Sie das Stammzertifikat, um eine Gruppenregistrierung im Device Provisioning Service zu konfigurieren. Verwenden Sie dann das Stammzertifikat, um zwei Gerätezertifikate zu generieren, die Sie in einem simulierten Gerätecode verwenden, um die Geräte auf einem IoT-Hub bereitzustellen. In Ihrem Gerätecode implementieren Sie den Zugriff auf die Eigenschaften des Gerätezwillings, die zum Ausführen der initialen Konfiguration des Geräts verwendet werden. Anschließend testen Sie Ihr simuliertes Gerät. Um dieses Modul abzuschließen, können Sie die gesamte Gruppenregistrierung rückgängig machen.
Einrichten
Im Rahmen dieses Moduls werden die folgenden Ressourcen erstellt:
- Ein Azure IoT-Hub
- Eine Device Provisioning Service-Instanz im Azure IoT Hub
- Zwei simulierte Geräte in C#
Cloudressourcen
Um dieses Projekt abzuschließen, benötigen Sie einen IoT-Hub und eine Device Provisioning Service-Instanz, die miteinander verknüpft sind. Das Erstellen dieser Dienstinstanzen kann mehrere Minuten dauern.
Klicken Sie zunächst auf die Schaltfläche Sandbox aktivieren. Die Sandbox erstellt automatisch eine Azure-Ressourcengruppe für Sie, die auf dieser Webseite angezeigt wird. Mit den folgenden Schritten erstellen Sie weitere Ressourcen für dieses Projekt. Der Name der Ressourcengruppe wird automatisch an den Stellen ersetzt, an denen er im Code verwendet wird.
Hinweis
20 Minuten Inaktivität in der Sandbox Azure Cloud Shell führen zu einem Timeout. Die Sandbox ist weiterhin verfügbar. Die Cloud Shell kann wieder aktiviert werden, Befehlszeilen- und Umgebungsvariablen gehen jedoch verloren. Ihr IoT Hub und Ihre Device Provisioning Service-Instanzen sind funktionsfähig und verfügbar. Stellen Sie sicher, dass Sie diese Werte wie am Ende dieser Seite angegeben kopieren, damit Sie bei Bedarf in weiteren Cloud Shell-Befehlen darauf verweisen und diese eingeben können.
Installieren Sie die Azure IoT-Erweiterung für die Azure CLI.
az extension add --name azure-iot
Erstellen Sie eine Variable namens suffix mit einer zufälligen Zahl, die Sie für Ressourcennamen verwenden, die global eindeutig sein müssen.
let suffix=$RANDOM*$RANDOM echo $suffix
Erstellen Sie einen IoT-Hub in der Ressourcengruppe, der von der Azure-Sandbox erstellt wurde.
az iot hub create --name hub-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
Erstellen Sie eine DPS-Instanz in der Ressourcengruppe, die von der Azure-Sandbox erstellt wurde.
az iot dps create --name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
Rufen Sie die Verbindungszeichenfolge des Hubs von Ihrem IoT-Hub ab, den Sie der DPS-Instanz bereitstellen, um die beiden Ressourcen zu verknüpfen.
hubConnectionString=$(az iot hub connection-string show --hub-name hub-$suffix --key-type primary --query connectionString -o tsv) echo $hubConnectionString
Fügen Sie Ihren IoT Hub als verknüpften Hub zu Ihrer DPS-Instanz hinzu. Das Verknüpfen eines IoT Hubs bedeutet, dass die DPS-Instanz Geräte für diesen IoT-Hub bereitstellen kann.
az iot dps linked-hub create --dps-name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --connection-string $hubConnectionString
Öffnen Sie nach Abschließen der Bereitstellung ein Text-Editor-Tool. Verwenden Sie den Text-Editor, um Konfigurationswerte zu speichern, die Ihren Azure-Ressourcen zugeordnet sind, falls in ihrer Sandbox nach 20 Minuten ein Timeout auftritt. Speichern Sie in Ihrem Text-Editor die folgenden Namen und Werte, die auf den nächsten Seiten der Lerneinheit verwendet werden sollen.
Name Wert Ressourcengruppenname Auf dieser Webseite aufgeführt Suffix Gespeichert in $suffix
. Beispielsweise ist ein Wert für$suffix
586732230
.IoT-Hub-Verbindungszeichenfolge Gespeichert in $hubConnectionString
IoT Hub-Name hub-$suffix
. Beispielsweisehub-586732230
.DPS-Name dps-$suffix
. Beispielsweisedps-586732230
.DPS-ID-Bereich Der Wert für idScope
in den JSON-Daten, die aus dem Befehlaz iot dps create
zurückgegeben wurden, den Sie in Schritt 5 ausgeführt haben. Beispielsweise ist der Wert füridScope
0ne0000000
.
Entwicklungsressourcen
Um die Bereitstellung Ihrer IoT-Geräte über den Device Provisioning Service zu simulieren, führen Sie zwei C#-Anwendungen auf Ihrem Computer aus. Auf dem Computer müssen die folgenden Voraussetzungen erfüllt sein: