Tutorial: Einrichten einer Umgebung für maschinelles Lernen in IoT Edge

Gilt für:yes icon IoT Edge 1.1

Wichtig

IoT Edge 1.1: Datum für das Supportende war der 13. Dezember 2022. Informationen zur Unterstützung für dieses Produkt, diesen Dienst, diese Technologie oder diese API finden Sie in der Microsoft Lifecycle-Richtlinie. Weitere Informationen zum Aktualisieren auf die neueste Version von IoT Edge finden Sie unter Aktualisieren IoT Edge.

Dieser Artikel enthält Informationen dazu, wie Sie Ihre Umgebung für die Entwicklung und Bereitstellung vorbereiten. Richten Sie zuerst einen Entwicklungscomputer mit allen benötigten Tools ein. Erstellen Sie anschließend die erforderlichen Cloudressourcen in Azure.

In diesem Abschnitt des Tutorials lernen Sie Folgendes:

  • Einrichten eines virtuellen Computers für die Entwicklung
  • Einrichten einer IoT Hub-Instanz und eines Cloudspeichers für Ihre Entwicklungsumgebung

Voraussetzungen

Dieser Artikel ist Teil einer Tutorialreihe zur Verwendung von Azure Machine Learning für IoT Edge. Jeder Artikel in der Reihe baut auf der Arbeit im vorherigen Artikel auf. Wenn Sie diesen Artikel direkt aufgerufen haben, wechseln Sie zum ersten Artikel in der Reihe.

Einrichten des virtuellen Entwicklungscomputers

Dieser Schritt wird normalerweise von einem Cloudentwickler ausgeführt. Ein Teil der Software ist ggf. auch für einen Data Scientist hilfreich.

Wir haben ein PowerShell-Skript zusammengestellt, mit dem ein virtueller Azure-Computer erstellt wird, für den viele erforderliche Komponenten bereits konfiguriert sind. Die von uns erstellte VM muss die geschachtelte Virtualisierung verarbeiten können. Aus diesem Grund haben wir einen Computer mit der Größe Standard_D8s_v3 gewählt.

Für die Einrichtung des virtuellen Entwicklungscomputers wird Folgendes verwendet:

Die Entwickler-VM ist nicht unbedingt erforderlich. Alle Entwicklungstools können auf einem lokalen Computer ausgeführt werden. Wir empfehlen Ihnen aber dringend die Nutzung des virtuellen Computers, damit bei Ihnen die gleichen Voraussetzungen bestehen.

Es dauert ungefähr 30 Minuten, um den virtuellen Computer zu erstellen und zu konfigurieren.

  1. Klonen Sie das Beispielrepository Machine Learning and IoT Edge, oder laden Sie es auf Ihren lokalen Computer herunter.

  2. Öffnen Sie PowerShell als Administrator, und navigieren Sie zum Verzeichnis \IoTEdgeAndMlSample\DevVM unter dem Stammverzeichnis, in das Sie den Code heruntergeladen haben. Das Stammverzeichnis für Ihre Quelle hat die Bezeichnung srcdir.

    cd c:\srcdir\IoTEdgeAndMlSample\DevVM
    

    Das Verzeichnis „DevVM“ enthält die Dateien, die zum Erstellen eines für dieses Tutorial geeigneten virtuellen Azure-Computers benötigt werden.

  3. Führen Sie den folgenden Befehl aus, um die Ausführung von Skripts zu ermöglichen. Wählen Sie Ja, alle, wenn die Aufforderung angezeigt wird.

    Set-ExecutionPolicy Bypass -Scope Process
    
  4. Führen Sie „Create-AzureDevVM.ps1“ aus.

    .\Create-AzureDevVm.ps1
    

    Geben Sie bei entsprechender Aufforderung die folgenden Informationen ein:

    • Azure-Abonnement-ID: Ihre Abonnement-ID, die Sie im Portal unter Azure-Abonnements finden.
    • Ressourcengruppenname: Der Name einer neuen oder vorhandenen Ressourcengruppe in Azure.
    • Standort: Wählen Sie einen Azure-Standort aus, an dem der virtuelle Computer erstellt wird. Beispiel: „USA, Westen 2“ oder „Europa, Norden“. Weitere Informationen finden Sie unter Azure-Standorte.
    • Benutzername: Geben Sie für das Administratorkonto für den virtuellen Computer einen einprägsamen Namen an.
    • Kennwort: Legen Sie ein Kennwort für das Administratorkonto für den virtuellen Computer fest.

    Die Ausführung des Skripts dauert mehrere Minuten, und es werden die folgenden Schritte ausgeführt:

    1. Installiert das Azure PowerShell Az-Modul.
    2. Fordert Sie zum Anmelden bei Azure auf.
    3. Überprüft die Informationen für die Erstellung Ihres virtuellen Computers. Drücken Sie y oder die EINGABETASTE, um fortzufahren.
    4. Erstellt die Ressourcengruppe, falls sie nicht vorhanden ist.
    5. Stellt den virtuellen Computer bereit.
    6. Aktiviert Hyper-V auf dem virtuellen Computer.
    7. Installiert die erforderliche Software für die Entwicklung und das Klonen des Beispielrepositorys.
    8. Startet die virtuellen Computer neu.
    9. Erstellt auf Ihrem Desktop eine RDP-Datei für die Verbindungsherstellung mit dem virtuellen Computer.

    Wenn Sie zum Eingeben des Namens des virtuellen Computers aufgefordert werden, um diesen neu zu starten, können Sie den Namen aus der Ausgabe des Skripts kopieren. In der Ausgabe wird auch der Pfad zur RDP-Datei für die Verbindungsherstellung mit dem virtuellen Computer angezeigt.

Festlegen eines Zeitplans zum automatischen Herunterfahren

Als Beitrag zur Kostenreduzierung wurde der virtuelle Entwicklungscomputer mit einem Zeitplan für das automatische Herunterfahren erstellt, der auf 19:00 Uhr PST festgelegt ist. Unter Umständen müssen Sie diese Einstellung je nach Standort und Zeitplan aktualisieren. Aktualisieren Sie den Zeitplan zum Herunterfahren wie folgt:

  1. Navigieren Sie im Azure-Portal zu dem virtuellen Computer, der mit dem Skript erstellt wurde.

  2. Wählen Sie im Menü auf der linken Seite unter Vorgänge die Option Automatisch herunterfahren aus.

  3. Passen Sie Geplantes Herunterfahren und Zeitzone wie gewünscht an, und wählen Sie anschließend Speichern aus.

Herstellen einer Verbindung mit dem virtuellen Entwicklungscomputer

Nachdem wir nun eine VM erstellt haben, müssen wir die Installation der Software abschließen, die für das Tutorial benötigt wird.

  1. Doppelklicken Sie auf die RDP-Datei, die vom Skript auf Ihrem Desktop erstellt wurde.

  2. Es wird ein Dialogfeld mit dem Hinweis angezeigt, dass der Herausgeber der Remoteverbindung unbekannt ist. Dies ist akzeptabel, und Sie können Verbinden auswählen.

  3. Geben Sie das Administratorkennwort ein, das Sie bei der Erstellung des virtuellen Computers angegeben haben, und klicken Sie auf OK.

  4. Sie werden aufgefordert, das Zertifikat für den virtuellen Computer zu akzeptieren. Wählen Sie Ja aus.

Installieren von Visual Studio Code-Erweiterungen

Nachdem Sie nun eine Verbindung mit dem Entwicklungscomputer hergestellt haben, sollten Sie Visual Studio Code einige nützliche Erweiterungen hinzufügen, um die Entwicklungsumgebung zu vereinfachen.

  1. Stellen Sie eine Verbindung mit dem virtuellen Entwicklungscomputer her, öffnen Sie ein PowerShell-Fenster, und navigieren Sie zum Verzeichnis C:\source\IoTEdgeAndMlSample\DevVM. Dieses Verzeichnis wurde mit dem Skript erstellt, mit dem der virtuelle Computer erstellt wurde.

    cd C:\source\IoTEdgeAndMlSample\DevVM
    
  2. Führen Sie den folgenden Befehl aus, um die Ausführung von Skripts zu ermöglichen. Wählen Sie Ja, alle, wenn die Aufforderung angezeigt wird.

    Set-ExecutionPolicy Bypass -Scope Process
    
  3. Führen Sie das Skript für die Visual Studio Code-Erweiterungen aus.

    .\Enable-CodeExtensions.ps1
    
  4. Die Ausführung des Skripts dauert einige Minuten, während die VS Code-Erweiterungen installiert werden:

    • Azure IoT Edge
    • Azure IoT Hub
    • Python
    • C#
    • Docker
    • PowerShell

Einrichten von IoT Hub und Storage

Diese Schritte werden normalerweise von einem Cloudentwickler ausgeführt.

Azure IoT Hub ist das Kernstück jeder IoT-Anwendung, weil damit die sichere Kommunikation zwischen IoT-Geräten und der Cloud gesteuert wird. Es ist das wichtigste Element für die Koordination des Betriebs einer IoT Edge Machine Learning-Lösung.

  • Für IoT Hub werden Routen genutzt, um eingehende Daten von IoT-Geräten an andere nachgeschaltete Dienste zu leiten. Wir nutzen IoT Hub-Routen, um Gerätedaten an Azure Storage zu senden. In Azure Storage werden die Gerätedaten von Azure Machine Learning genutzt, um den Klassifizierer für die verbleibende Nutzungsdauer (Remaining Useful Life, RUL) zu trainieren.

  • Später im Tutorial verwenden wir IoT Hub zum Konfigurieren und Verwalten unseres Azure IoT Edge-Geräts.

In diesem Abschnitt nutzen Sie ein Skript, um eine Azure IoT Hub-Instanz und ein Azure Storage-Konto zu erstellen. Anschließend konfigurieren Sie im Azure-Portal eine Route, über die vom Hub empfangene Daten an einen Azure Storage-Container weitergeleitet werden. Es dauert ungefähr zehn Minuten, bis diese Schritte abgeschlossen sind.

  1. Stellen Sie eine Verbindung mit dem virtuellen Entwicklungscomputer her, öffnen Sie ein PowerShell-Fenster, und navigieren Sie zum Verzeichnis IoTHub.

    cd C:\source\IoTEdgeAndMlSample\IoTHub
    
  2. Führen Sie das Erstellungsskript aus. Verwenden Sie die gleichen Werte für Abonnement-ID, Standort und Ressourcengruppe wie beim Erstellen des virtuellen Entwicklungscomputers.

    .\New-HubAndStorage.ps1 -SubscriptionId <subscription id> -Location <location> -ResourceGroupName <resource group>
    
    • Sie werden aufgefordert, sich bei Azure anzumelden.
    • Das Skript bestätigt die Informationen für die Erstellung Ihres Hubs und Speicherkontos. Drücken Sie y oder die EINGABETASTE, um fortzufahren.

Die Ausführung des Skripts dauert ungefähr zwei Minuten. Nach Abschluss des Vorgangs gibt das Skript den Namen des IoT-Hubs und des Speicherkontos aus.

Überprüfen der Route zum Speicher in IoT Hub

Bei der Erstellung des IoT-Hubs wurden mit dem Skript, das wir im vorherigen Abschnitt ausgeführt haben, auch ein benutzerdefinierter Endpunkt und eine Route erstellt. IoT-Hub-Routen bestehen aus einem Abfrageausdruck und einem Endpunkt. Wenn eine Nachricht mit dem Ausdruck übereinstimmt, werden die Daten über die Route an den zugeordneten Endpunkt gesendet. Bei Endpunkten kann es sich um Event Hubs und Service Bus-Warteschlangen und -Themen handeln. In diesem Fall ist der Endpunkt ein Blobcontainer in einem Speicherkonto. Wir verwenden das Azure-Portal, um die vom Skript erstellte Route zu überprüfen.

  1. Öffnen Sie das Azure-Portal, und navigieren Sie zu der Ressourcengruppe, die Sie für dieses Tutorial verwenden.

  2. Wählen Sie in der Liste mit den Ressourcen den IoT-Hub aus, der mit dem Skript erstellt wurde. Der Name endet auf zufällig erzeugte Zeichen, z. B. IotEdgeAndMlHub-jrujej6de6i7w.

  3. Wählen Sie im Menü im linken Bereich unter Hubeinstellungen die Option Nachrichtenrouting aus.

  4. Wählen Sie auf der Seite Nachrichtenrouting die Registerkarte Benutzerdefinierte Endpunkte aus.

  5. Erweitern Sie den Abschnitt Speicher:

    Screenshot des Speichers namens turbofanDeviceStorage in der Liste der benutzerdefinierten Endpunkte im IoT Hub-Portal.

    Sie sehen, dass turbofanDeviceStorage in der Liste mit den benutzerdefinierten Endpunkten enthalten ist. Beachten Sie die folgenden Eigenschaften dieses Endpunkts:

    • Er verweist auf den von Ihnen erstellten Blobspeichercontainer mit dem Namen devicedata. Dies wird über den Containernamen angegeben.
    • Unter Format des Dateinamens ist „Partition“ im Namen angegeben. Dieses Format ist besser für die Dateivorgänge geeignet, die wir später in diesem Tutorial mit Azure Notebooks durchführen.
    • Als Status sollte „Fehlerfrei“ angezeigt werden.
  6. Wählen Sie die Registerkarte Routen.

  7. Wählen Sie die Route mit dem Namen turbofanDeviceDataToStorage.

  8. Beachten Sie auf der Seite Details zur Route, dass turbofanDeviceStorage der Endpunkt der Route ist.

    Screenshot: Detailinformationen zur turbofanDeviceDataToStorage-Route.

  9. Sehen Sie sich die Routingabfrage an, die auf true festgelegt ist. Diese Einstellung bedeutet, dass alle Gerätetelemetrienachrichten mit dieser Route übereinstimmen, sodass alle Nachrichten an den Endpunkt turbofanDeviceStorage gesendet werden.

  10. Da keine Änderungen vorgenommen wurden, können Sie die Seite einfach schließen.

Bereinigen von Ressourcen

Dieses Tutorial ist Teil einer Reihe, in der jeder Artikel auf den Schritten aufbaut, die jeweils im vorherigen Artikel ausgeführt wurden. Warten Sie mit dem Bereinigen von Ressourcen, bis Sie das letzte Tutorial abgeschlossen haben.

Nächste Schritte

In diesem Artikel haben wir eine IoT Hub-Instanz erstellt und eine Route zu einem Azure Storage-Konto konfiguriert. Als Nächstes senden wir Daten von einer Gruppe simulierter Geräte über die IoT Hub-Instanz an das Speicherkonto. Später in diesem Tutorial nach der Konfiguration unseres IoT Edge-Geräts und der Module gehen wir noch einmal auf Routen und die Routingabfrage ein.

Fahren Sie mit dem nächsten Artikel fort, um ein zu überwachendes simuliertes Gerät zu erstellen.