Tutorial: Bereitstellen von Azure Machine Learning als IoT Edge-Modul (Vorschauversion)Tutorial: Deploy Azure Machine Learning as an IoT Edge module (preview)

Verwenden Sie Azure Notebooks, um ein Modul für maschinelles Lernen zu entwickeln und es auf einem Linux-Gerät bereitzustellen, das Azure IoT Edge ausführt.Use Azure Notebooks to develop a machine learning module and deploy it to a Linux device running Azure IoT Edge.

Mithilfe von IoT Edge-Modulen können Sie Code bereitstellen, mit dem Ihre Geschäftslogik direkt auf Ihren IoT Edge-Geräten implementiert wird.You can use IoT Edge modules to deploy code that implements your business logic directly to your IoT Edge devices. In diesem Tutorial erfahren Sie Schritt für Schritt, wie Sie ein Azure Machine Learning-Modul bereitstellen, das anhand der Temperaturdaten eines simulierten Computers den Ausfall eines Geräts vorhersagt.This tutorial walks you through deploying an Azure Machine Learning module that predicts when a device fails based on simulated machine temperature data. Weitere Informationen zu Azure Machine Learning Service in IoT Edge finden Sie in der Azure Machine Learning-Dokumentation.For more information about Azure Machine Learning service on IoT Edge, see Azure Machine Learning documentation.

Das Azure Machine Learning-Modul, das Sie in diesem Tutorial erstellen, liest die von Ihrem Gerät generierten Umgebungsdaten und kennzeichnet die Nachrichten ggf. als anomal.The Azure Machine Learning module that you create in this tutorial reads the environmental data generated by your device and labels the messages as anomalous or not.

In diesem Tutorial lernen Sie Folgendes:In this tutorial, you learn how to:

  • Erstellen eines Azure Machine Learning-ModulsCreate an Azure Machine Learning module
  • Pushen eines Modulcontainers in eine Azure Container RegistryPush a module container to an Azure container registry
  • Bereitstellen eines Azure Machine Learning-Moduls auf Ihrem IoT Edge-GerätDeploy an Azure Machine Learning module to your IoT Edge device
  • Anzeigen generierter DatenView generated data

Hinweis

Azure Machine Learning-Module in Azure IoT Edge sind als Public Preview verfügbar.Azure Machine Learning modules on Azure IoT Edge are in public preview.

Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

VoraussetzungenPrerequisites

Ein Azure IoT Edge-Gerät:An Azure IoT Edge device:

  • Sie können einen virtuellen Azure-Computer als IoT Edge-Gerät verwenden, indem Sie die Schritte im Schnellstart für Linux ausführen.You can use an Azure virtual machine as an IoT Edge device by following the steps in the quickstart for Linux.
  • Das Azure Machine Learning-Modul unterstützt keine Windows-Container.The Azure Machine Learning module doesn't support Windows containers.
  • Das Azure Machine Learning-Modul unterstützt keine ARM-Prozessoren.The Azure Machine Learning module doesn't support ARM processors.

Cloudressourcen:Cloud resources:

  • Eine IoT Hub-Instanz in Azure im Tarif „Free“ oder „Standard“.A free or standard-tier IoT Hub in Azure.
  • Ein Azure Machine Learning-Arbeitsbereich.An Azure Machine Learning workspace. Befolgen Sie die Anweisungen unter Verwenden des Azure-Portals zum Ausführen der ersten Schritte mit Azure Machine Learning, um einen zu erstellen und zu erfahren, wie Sie ihn verwenden.Follow the instructions in Use the Azure portal to get started with Azure Machine Learning to create one and learn how to use it.
    • Notieren Sie sich den Arbeitsbereichsnamen, die Ressourcengruppe und die Abonnement-ID.Make a note of the workspace name, resource group, and subscription ID. Diese Werte sind in der Übersicht über den Arbeitsbereich im Azure-Portal verfügbar.These values are all available on the workspace overview in the Azure portal. Diese Werte verwenden Sie später im Tutorial zum Verbinden eines Azure-Notebooks mit Ihren Arbeitsbereichsressourcen.You'll use these values later in the tutorial to connect an Azure notebook to your workspace resources.

Erstellen und Bereitstellen eines Azure Machine Learning-ModulsCreate and deploy Azure Machine Learning module

In diesem Abschnitt konvertieren Sie die trainierten Machine Learning-Modelldateien und laden sie in einen Azure Machine Learning Service-Container herunter.In this section, you convert trained machine learning model files and into an Azure Machine Learning service container. Alle erforderlichen Komponenten für das Docker-Image finden Sie im Git-Repository mit dem KI-Toolkit für Azure IoT Edge.All the components required for the Docker image are in the AI Toolkit for Azure IoT Edge Git repo. Führen Sie die folgenden Schritte zum Hochladen dieses Repositorys in Microsoft Azure Notebooks aus, um den Container zu erstellen und in Azure Container Registry zu pushen.Follow these steps to upload that repository into Microsoft Azure Notebooks to create the container and push it to Azure Container Registry.

  1. Navigieren Sie zu Ihren Azure Notebooks-Projekten.Navigate to your Azure Notebooks projects. Dorthin können Sie über Ihren Azure Machine Learning Service-Arbeitsbereich im Azure-Portal oder durch Anmelden bei Microsoft Azure Notebooks mit Ihrem Azure-Konto navigieren.You can get there from your Azure Machine Learning service workspace in the Azure portal or by signing in to Microsoft Azure Notebooks with your Azure account.

  2. Wählen Sie Upload GitHub Repo (GitHub-Repository hochladen) aus.Select Upload GitHub Repo.

  3. Geben Sie den folgenden GitHub-Repositorynamen an: Azure/ai-toolkit-iot-edge.Provide the following GitHub repository name: Azure/ai-toolkit-iot-edge. Deaktivieren Sie das Kontrollkästchen Öffentlich, wenn das Projekt privat bleiben soll.Uncheck the Public box if you want to keep your project private. Wählen Sie Importieren aus.Select Import.

  4. Navigieren Sie nach Abschluss des Imports zu dem neuen Projekt ai-toolkit-iot-edge, und öffnen Sie den Ordner IoT Edge anomaly detection tutorial.Once the import is finished, navigate into the new ai-toolkit-iot-edge project and open the IoT Edge anomaly detection tutorial folder.

  5. Vergewissern Sie sich, dass Ihr Projekt ausgeführt wird.Verify that your project is running. Wenn dies nicht der Fall ist, wählen Sie Run on Free Compute (Mit kostenlosem Compute ausführen) aus.If not, select Run on Free Compute.

    Run on free compute (Mit kostenlosem Compute ausführen)

  6. Öffnen Sie die Datei aml_config/config.json.Open the aml_config/config.json file.

  7. Bearbeiten Sie die Konfigurationsdatei, und geben Sie die Werte für die Azure-Abonnement-ID, eine Ressourcengruppe in Ihrem Abonnement und den Namen Ihres Azure Machine Learning Service-Arbeitsbereichs an.Edit the config file to include the values for your Azure subscription ID, a resource group in your subscription, and your Azure Machine Learning service workspace name. Alle diese Werte finden Sie im Abschnitt Übersicht für Ihren Arbeitsbereich in Azure.You can get all these values from the Overview section of your workspace in Azure.

  8. Speichern Sie die Konfigurationsdatei.Save the config file.

  9. Öffnen Sie die Datei 00-anomaly-detection-tutorial.ipynb.Open the 00-anomaly-detection-tutorial.ipynb file.

  10. Wählen Sie bei der entsprechenden Aufforderung den Python 3.6-Kernel und dann Set Kernel (Kernel festlegen) aus.When prompted, select the Python 3.6 kernel then select Set Kernel.

  11. Bearbeiten Sie die erste Zelle im Notebook entsprechend den Anweisungen in den Kommentaren.Edit the first cell in the notebook according to the instructions in the comments. Verwenden Sie die gleichen Werte für Ressourcengruppe, Abonnement-ID und Arbeitsbereichsnamen, die Sie in der Konfigurationsdatei eingefügt haben.Use the same resource group, subscription ID, and workspace name that you added to the config file.

  12. Führen Sie die Zellen im Notebook aus, indem Sie sie auswählen und dann Ausführen auswählen oder Shift + Enter drücken.Run the cells in the notebook by selecting them and selecting Run or pressing Shift + Enter.

    Tipp

    Einige der Zellen im Tutorial-Notebook zur Anomalieerkennung sind optional, da sie Ressourcen erstellen, über die einige Benutzer möglicherweise noch nicht verfügen, z. B. einen IoT Hub.Some of the cells in the anomaly detection tutorial notebook are optional, because they create resources that some users may or may not have yet, like an IoT Hub. Wenn Sie die Informationen zu Ihren vorhandenen Ressourcen in der ersten Zelle einfügen, werden beim Ausführen der Zellen, über die neue Ressourcen erstellt werden, Fehler angezeigt, da Ressourcen in Azure nicht dupliziert werden.If you put your existing resource information in the first cell, you'll receive errors if you run the cells that create new resources because Azure won't create duplicate resources. Dies stellt kein Problem dar. Sie können die Fehler ignorieren oder diese optionalen Abschnitte ganz überspringen.This is fine, and you can ignore the errors or skip those optional sections entirely.

Nach Abschluss aller Schritte im Notebook haben Sie ein Modell zur Anomalieerkennung trainiert, es als Docker-Containerimage erstellt und dieses Image mithilfe von Push an Azure Container Registry übertragen.By completing all the steps in the notebook, you trained an anomaly detection model, built it as a Docker container image, and pushed that image to Azure Container Registry. Zudem haben Sie das Modell getestet und es schließlich für Ihr IoT Edge-Gerät bereitgestellt.Then, you tested the model and finally deployed it to your IoT Edge device.

Anzeigen des ContainerrepositorysView container repository

Überprüfen Sie, ob Ihr Containerimage erfolgreich erstellt und in der Azure Container Registry-Instanz gespeichert wurde, die Ihrer Umgebung für maschinelles Lernen zugeordnet ist.Check that your container image was successfully created and stored in the Azure container registry associated with your machine learning environment. Mit dem Notebook, das Sie im vorherigen Abschnitt verwendet haben, wurden automatisch das Containerimage und die Registrierungsanmeldeinformationen für Ihr IoT Edge-Gerät angegeben. Sie sollten jedoch wissen, wo diese Angaben gespeichert sind, sodass Sie die Informationen später finden können.The notebook that you used in the previous section automatically provided the container image and the registry credentials to your IoT Edge device, but you should know where they're stored so that you can find the information yourself later.

  1. Navigieren Sie im Azure-Portal zu Ihrem Machine Learning Service-Arbeitsbereich.In the Azure portal, navigate to your Machine Learning service workspace.

  2. Im Abschnitt Übersicht sind die Informationen zum Arbeitsbereich und die zugehörigen Ressourcen aufgeführt.The Overview section lists the workspace details as well its associated resources. Wählen Sie unter Registrierung den Wert aus, der als Arbeitsbereichsnamen dienen soll, gefolgt von Zufallszahlen.Select the Registry value, which should be your workspace name followed by random numbers.

  3. Wählen Sie in der Containerregistrierung die Option Repositorys aus.In the container registry, select Repositories. Es sollte das Repository tempanomalydetection angezeigt werden, das mit dem im vorherigen Abschnitt ausgeführten Notebook erstellt wurde.You should see a repository called tempanomalydetection that was created by the notebook you ran in the earlier section.

  4. Wählen Sie tempanomalydetection aus.Select tempanomalydetection. Das Repository sollte ein Tag enthalten: 1.You should see that the repository has one tag: 1.

    Sie kennen nun den Registrierungsnamen, den Repositorynamen und das Tag und damit den vollständigen Imagepfad des Containers.Now that you know the registry name, repository name, and tag, you know the full image path of the container. Imagepfade sehen wie folgt aus: <Registrierungsname>.azurecr.io/tempanomalydetection:1.Image paths look like <registry_name>.azurecr.io/tempanomalydetection:1. Über den Imagepfad können Sie den Container auf IoT Edge-Geräten bereitstellen.You can use the image path to deploy this container to IoT Edge devices.

  5. Wählen Sie in der Containerregistrierung die Option Zugriffsschlüssel aus.In the container registry, select Access keys. Daraufhin sollten Zugriffsanmeldeinformationen, einschließlich Anmeldeserver sowie Benutzername und Kennwort für einen Administratorbenutzer angezeigt werden.You should see a number of access credentials, including Login server and the Username, and Password for an admin user.

    Diese Anmeldeinformationen können im Bereitstellungsmanifest eingefügt werden, sodass das IoT Edge-Gerät Zugriff zum Abrufen von Containerimages aus der Registrierung erhält.These credentials can be included in the deployment manifest to give your IoT Edge device access to pull container images from the registry.

Damit wissen Sie, wo das Machine Learning-Containerimage gespeichert ist.Now you know where the Machine Learning container image is stored. Der nächste Abschnitt führt Sie schrittweise durch das Anzeigen des als Modul auf Ihrem IoT Edge-Gerät ausgeführten Containers.The next section walks through steps to view the container running as a module on your IoT Edge device.

Anzeigen generierter DatenView generated data

Sie können Nachrichten anzeigen, die von den einzelnen IoT Edge-Modulen generiert werden, und Sie können Nachrichten anzeigen, die an Ihre IoT Hub-Instanz übermittelt werden.You can view messages being generated by each IoT Edge module, and you can view messages that are delivered to your IoT hub.

Anzeigen von Daten auf Ihrem IoT Edge-GerätView data on your IoT Edge device

Auf Ihrem IoT Edge-Gerät können Sie die Nachrichten anzeigen, die von den einzelnen Modulen gesendet werden.On your IoT Edge device, you can view the messages being sent from every individual module.

Möglicherweise müssen Sie sudo verwenden, um erhöhte Berechtigungen zu erhalten und iotedge-Befehle ausführen zu können.You may need to use sudo for elevated permissions to run iotedge commands. Durch Abmelden und erneutes Anmelden bei Ihrem Gerät werden Ihre Berechtigungen automatisch aktualisiert.Signing out and signing back in to your device automatically updates your permissions.

  1. Zeigen Sie alle Module auf Ihrem IoT Edge-Gerät an.View all modules on your IoT Edge device.

    iotedge list
    
  2. Zeigen Sie die Nachrichten an, die von einem bestimmten Gerät gesendet werden.View the messages being sent from a specific device. Verwenden Sie den Modulnamen aus der Ausgabe des vorherigen Befehls.Use the module name from the output of the previous command.

    iotedge logs <module_name> -f
    

Anzeigen von Daten, die bei Ihrer IoT Hub-Instanz eingehenView data arriving at your IoT hub

Sie können die Gerät-zu-Cloud-Nachrichten, die Ihre IoT Hub-Instanz empfängt, mithilfe der Azure IoT Hub-Toolkit-Erweiterung für Visual Studio Code (bisher als Azure IoT-Toolkit-Erweiterung bekannt) anzeigen.You can view the device-to-cloud messages that your IoT hub receives by using the Azure IoT Hub Toolkit extension for Visual Studio Code (formerly Azure IoT Toolkit extension).

Die folgenden Schritte zeigen, wie Sie Visual Studio Code einrichten, um Gerät-zu-Cloud-Nachrichten zu überwachen, die bei Ihrer IoT Hub-Instanz eingehen.The following steps show you how to set up Visual Studio Code to monitor device-to-cloud messages that arrive at your IoT hub.

  1. Wählen Sie in Visual Studio Code IoT Hub-Geräte aus.In Visual Studio Code, select IoT Hub Devices.

  2. Wählen Sie ... und dann IoT Hub-Verbindungszeichenfolge festlegen aus dem Menü aus.Select ... then select Set IoT Hub Connection String from the menu.

    Festlegen der IoT Hub-Verbindungszeichenfolge

  3. Geben Sie in das Textfeld, das sich oben auf der Seite öffnet, die Verbindungszeichenfolge „iothubowner“ für Ihren IoT Hub ein.In the text box that opens at the top of the page, enter the iothubowner connection string for your IoT Hub. Ihr IoT Edge-Gerät sollte in der Liste der IoT Hub-Geräte angezeigt werden.Your IoT Edge device should appear in the IoT Hub Devices list.

  4. Wähle Sie ... erneut aus, und wählen Sie anschließend Start monitoring D2C message (Überwachung von D2C-Nachricht starten).Select ... again then select Start monitoring D2C message.

  5. Beobachten Sie die ankommenden Nachrichten von tempSensor alle fünf Sekunden.Observe the messages coming from tempSensor every five seconds. Der Nachrichtentext enthält die anomaly-Eigenschaft, die vom Machine Learning-Modul den Wert TRUE oder FALSE erhält.The message body contains a property called anomaly, which the machinelearningmodule provides with a true or false value. Die AzureMLResponse-Eigenschaft enthält den Wert „OK“, wenn das Modell erfolgreich ausgeführt wurde.The AzureMLResponse property contains the value "OK" if the model ran successfully.

    Antwort von Azure Machine Learning Service im Nachrichtentext

Bereinigen von RessourcenClean up resources

Falls Sie mit dem nächsten empfohlenen Artikel fortfahren möchten, können Sie die erstellten Ressourcen und Konfigurationen beibehalten und wiederverwenden.If you plan to continue to the next recommended article, you can keep the resources and configurations that you created and reuse them. Sie können auch dasselbe IoT Edge-Gerät als Testgerät weiter nutzen.You can also keep using the same IoT Edge device as a test device.

Andernfalls können Sie die in diesem Artikel erstellten lokalen Konfigurationen und Azure-Ressourcen löschen, um Kosten zu vermeiden.Otherwise, you can delete the local configurations and the Azure resources that you created in this article to avoid charges.

Löschen von Azure-RessourcenDelete Azure resources

Das Löschen von Azure-Ressourcen und -Ressourcengruppen kann nicht rückgängig gemacht werden.Deleting Azure resources and resource groups is irreversible. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen.Make sure that you don't accidentally delete the wrong resource group or resources. Wenn Sie die IoT Hub-Ressource in einer bereits vorhandenen Ressourcengruppe erstellt haben, die Ressourcen enthält, die Sie behalten möchten, löschen Sie nicht die Ressourcengruppe, sondern nur die IoT Hub-Ressource.If you created the IoT hub inside an existing resource group that has resources that you want to keep, delete only the IoT hub resource itself, instead of deleting the resource group.

So löschen Sie die Ressourcen:To delete the resources:

  1. Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.Sign in to the Azure portal and select Resource groups.

  2. Wählen Sie den Namen der Ressourcengruppe aus, die Ihre IoT Edge-Testressourcen enthält.Select the name of the resource group that contains your IoT Edge test resources.

  3. Überprüfen Sie die Liste der Ressourcen in Ihrer Ressourcengruppe.Review the list of resources contained in your resource group. Wenn Sie alle löschen möchten, klicken Sie auf Ressourcengruppe löschen.If you want to delete all of them, you can select Delete resource group. Wenn Sie nur einige Ressourcen löschen möchten, klicken Sie auf die jeweiligen Ressourcen, um sie einzeln zu löschen.If you want to delete only some of them, you can click into each resource to delete them individually.

Nächste SchritteNext steps

In diesem Tutorial haben Sie ein von Azure Machine Learning unterstütztes IoT Edge-Modul bereitgestellt.In this tutorial, you deployed an IoT Edge module powered by Azure Machine Learning. Sie können mit einem der anderen Tutorials fortfahren, um andere Möglichkeiten kennenzulernen, wie Azure IoT Edge Ihnen beim Umwandeln von Daten in geschäftliche Erkenntnisse auf Edge-Ebene helfen kann.You can continue on to any of the other tutorials to learn about other ways that Azure IoT Edge can help you turn data into business insights at the edge.

Tutorial: Perform image classification at the edge with Custom Vision Service (Tutorial: Ausführen der Bildklassifizierung im Edge-Bereich mit Custom Vision Service)Classify images with Custom Vision service