Samouczek: wdrażanie usługi Azure Machine Learning jako modułu usługi IoT Edge (wersja zapoznawcza)Tutorial: Deploy Azure Machine Learning as an IoT Edge module (preview)

Dotyczy:  ikona tak IoT Edge 1,1  yes IoT Edge 1,2Applies to: yes icon IoT Edge 1.1 yes icon IoT Edge 1.2

Użyj Azure Notebooks do opracowania modułu uczenia maszynowego i wdrożenia go na urządzeniu z systemem Azure IoT Edge z kontenerami systemu Linux.Use Azure Notebooks to develop a machine learning module and deploy it to a device running Azure IoT Edge with Linux containers. Moduły usługi IoT Edge umożliwiają wdrożenie kodu implementującego logikę biznesową bezpośrednio na urządzeniach usługi IoT Edge.You can use IoT Edge modules to deploy code that implements your business logic directly to your IoT Edge devices. Ten samouczek zawiera opis sposobu wdrażania modułu usługi Azure Machine Learning, który przewiduje awarię urządzenia na podstawie symulowanych danych dotyczących temperatury maszyny.This tutorial walks you through deploying an Azure Machine Learning module that predicts when a device fails based on simulated machine temperature data. Aby uzyskać więcej informacji na temat Azure Machine Learning na IoT Edge, zobacz dokumentację Azure Machine Learning.For more information about Azure Machine Learning on IoT Edge, see Azure Machine Learning documentation.

Uwaga

Moduły usługi Azure Machine Learning w usłudze Azure IoT Edge są dostępne w publicznej wersji zapoznawczej.Azure Machine Learning modules on Azure IoT Edge are in public preview.

Moduł usługi Azure Machine Learning tworzony w tym samouczku odczytuje dane środowiska wygenerowane przez urządzenie i oznacza, czy komunikaty wskazują wystąpienie anomalii, czy nie.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.

Ten samouczek zawiera informacje na temat wykonywania następujących czynności:In this tutorial, you learn how to:

  • Utwórz moduł Azure Machine Learning.Create an Azure Machine Learning module.
  • Wypchnij kontener modułu do usługi Azure Container Registry.Push a module container to an Azure container registry.
  • Wdróż moduł Azure Machine Learning na urządzeniu IoT Edge.Deploy an Azure Machine Learning module to your IoT Edge device.
  • Wyświetlanie wygenerowanych danych.View generated data.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem Utwórz bezpłatne konto .If you don't have an Azure subscription, create a free account before you begin.

Wymagania wstępnePrerequisites

Urządzenie usługi Azure IoT Edge:An Azure IoT Edge device:

  • Korzystając z przewodników Szybki Start, można skonfigurować urządzenie z systemem Linux lub urządzenie systemu Windows.You can use the quickstarts to set up a Linux device or Windows device.
  • Moduł Azure Machine Learning nie obsługuje kontenerów systemu Windows.The Azure Machine Learning module doesn't support Windows containers.
  • Moduł Azure Machine Learning nie obsługuje procesorów ARM.The Azure Machine Learning module doesn't support ARM processors.

Zasoby w chmurze:Cloud resources:

  • Usługa IoT Hub w warstwie Bezpłatna lub Standardowa na platformie Azure.A free or standard-tier IoT Hub in Azure.
  • Obszar roboczy usługi Azure Machine Learning.An Azure Machine Learning workspace. Postępuj zgodnie z instrukcjami w temacie Use the Azure Portal, aby rozpocząć pracę z Azure Machine Learning , aby je utworzyć i dowiedzieć się, jak z niej korzystać.Follow the instructions in Use the Azure portal to get started with Azure Machine Learning to create one and learn how to use it.
    • Zanotuj nazwę obszaru roboczego, grupę zasobów i Identyfikator subskrypcji.Make a note of the workspace name, resource group, and subscription ID. Te wartości są dostępne w obszarze roboczym przegląd w Azure Portal.These values are all available on the workspace overview in the Azure portal. Te wartości będą używane w dalszej części samouczka, aby połączyć plik Azure Notebooks z zasobami obszaru roboczego.You'll use these values later in the tutorial to connect an Azure Notebooks file to your workspace resources.

Tworzenie i wdrażanie modułu Azure Machine LearningCreate and deploy Azure Machine Learning module

W tej sekcji przekonwertujesz przeszkolone pliki modelu uczenia maszynowego na kontener Azure Machine Learning.In this section, you convert trained machine learning model files and into an Azure Machine Learning container. Wszystkie wymagane składniki obrazu platformy Docker znajdują się w repozytorium zestawu narzędzi SI dla usługi Azure IoT Edge.All the components required for the Docker image are in the AI Toolkit for Azure IoT Edge Git repo. Wykonaj następujące kroki, aby przekazać repozytorium do Microsoft Azure Notebooks, aby utworzyć kontener i wypchnąć go do Azure Container Registry.Follow these steps to upload that repository into Microsoft Azure Notebooks to create the container and push it to Azure Container Registry.

  1. Przejdź do projektu Azure Notebooks.Navigate to your Azure Notebooks projects. Możesz uzyskać dostęp do obszaru roboczego Azure Machine Learning w Azure Portal lub, logując się do Microsoft Azure Notebooks przy użyciu konta platformy Azure.You can get there from your Azure Machine Learning workspace in the Azure portal or by signing in to Microsoft Azure Notebooks with your Azure account.

  2. Wybierz pozycję Przekaż repozytorium GitHub.Select Upload GitHub Repo.

  3. Podaj następującą nazwę repozytorium GitHub: Azure/ai-toolkit-iot-edge .Provide the following GitHub repository name: Azure/ai-toolkit-iot-edge. Usuń zaznaczenie pola publicznego , jeśli chcesz zachować prywatny projekt.Uncheck the Public box if you want to keep your project private. Wybierz pozycję Importuj.Select Import.

  4. Po zakończeniu importowania przejdź do nowego projektu AI-Toolkit-IoT-Edge i Otwórz folder samouczek wykrywania anomalii IoT Edge .Once the import is finished, navigate into the new ai-toolkit-iot-edge project and open the IoT Edge anomaly detection tutorial folder.

  5. Sprawdź, czy projekt jest uruchomiony.Verify that your project is running. W przeciwnym razie wybierz pozycję Uruchom przy bezpłatnej obliczeń.If not, select Run on Free Compute.

    Uruchamianie przy bezpłatnych obliczeniach

  6. Otwórz aml_config/config.jsna pliku.Open the aml_config/config.json file.

  7. Edytuj plik konfiguracji, aby uwzględnić wartości identyfikatora subskrypcji platformy Azure, grupy zasobów w subskrypcji oraz nazwę obszaru roboczego Azure Machine Learning.Edit the config file to include the values for your Azure subscription ID, a resource group in your subscription, and your Azure Machine Learning workspace name. Wszystkie te wartości można uzyskać z sekcji Przegląd obszaru roboczego na platformie Azure.You can get all these values from the Overview section of your workspace in Azure.

  8. Zapisz plik konfiguracji.Save the config file.

  9. Otwórz plik 00-anomalia-Detection-samouczek. ipynb .Open the 00-anomaly-detection-tutorial.ipynb file.

  10. Po wyświetleniu monitu wybierz jądro Python 3,6 , a następnie wybierz pozycję Ustaw jądro.When prompted, select the Python 3.6 kernel then select Set Kernel.

  11. Edytuj pierwszą komórkę w notesie zgodnie z instrukcjami w komentarzach.Edit the first cell in the notebook according to the instructions in the comments. Użyj tej samej grupy zasobów, identyfikatora subskrypcji i nazwy obszaru roboczego dodanej do pliku konfiguracji.Use the same resource group, subscription ID, and workspace name that you added to the config file.

  12. Uruchom komórki w notesie, zaznaczając je i wybierając polecenie Uruchom lub naciskając Shift + Enter .Run the cells in the notebook by selecting them and selecting Run or pressing Shift + Enter.

    Porada

    Niektóre komórki w notesie z samouczkiem wykrywania anomalii są opcjonalne, ponieważ tworzą zasoby, które niektórzy użytkownicy mogą lub nie mogą jeszcze nie, jak 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. Jeśli w pierwszej komórce umieścisz informacje o istniejących zasobach, zostaną wyświetlone błędy w przypadku uruchomienia komórek, które tworzą nowe zasoby, ponieważ platforma Azure nie będzie tworzyć zduplikowanych zasobów.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. Jest to dokładne i można zignorować błędy lub całkowicie pominąć te opcjonalne sekcje.This is fine, and you can ignore the errors or skip those optional sections entirely.

Wykonując wszystkie kroki w notesie, przeszkolony model wykrywania anomalii, skonstruowany jako obraz kontenera Docker i wypchnięciem tego obrazu do Azure Container Registry.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. Następnie przetestowano model i ostatecznie go wdrożono na urządzeniu IoT Edge.Then, you tested the model and finally deployed it to your IoT Edge device.

Wyświetl repozytorium konteneraView container repository

Sprawdź, czy obraz kontenera został pomyślnie utworzony i zapisany w rejestrze kontenerów platformy Azure skojarzonym ze środowiskiem uczenia maszynowego.Check that your container image was successfully created and stored in the Azure container registry associated with your machine learning environment. W notesie użytym w poprzedniej sekcji automatycznie udostępniono obraz kontenera i poświadczenia rejestru na urządzeniu IoT Edge, ale należy wiedzieć, gdzie są przechowywane, aby można było później znaleźć informacje.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. W Azure Portalprzejdź do obszaru roboczego usługi Machine Learning.In the Azure portal, navigate to your Machine Learning service workspace.

  2. Sekcja Przegląd zawiera szczegóły obszaru roboczego, a także powiązane z nim zasoby.The Overview section lists the workspace details as well its associated resources. Wybierz wartość rejestru , która powinna być nazwą obszaru roboczego, a następnie liczbami losowymi.Select the Registry value, which should be your workspace name followed by random numbers.

  3. W rejestrze kontenerów w obszarze usługi wybierz pozycję repozytoria.In the container registry, under Services, select Repositories. Powinno zostać wyświetlone repozytorium o nazwie tempanomalydetection , które zostało utworzone przez Notes uruchomiony w poprzedniej sekcji.You should see a repository called tempanomalydetection that was created by the notebook you ran in the earlier section.

  4. Wybierz pozycję tempanomalydetection.Select tempanomalydetection. Powinno być widoczne, że repozytorium ma jeden tag: 1.You should see that the repository has one tag: 1.

    Teraz, gdy znasz nazwę rejestru, nazwę repozytorium i tag, znasz pełną ścieżkę obrazu do kontenera.Now that you know the registry name, repository name, and tag, you know the full image path of the container. Ścieżki obrazów wyglądają jak <registry_name> . azurecr.IO/tempanomalydetection:1.Image paths look like <registry_name>.azurecr.io/tempanomalydetection:1. Możesz użyć ścieżki obrazu do wdrożenia tego kontenera na urządzeniach usługi IoT Edge.You can use the image path to deploy this container to IoT Edge devices.

  5. W rejestrze kontenerów w obszarze Ustawienia wybierz pozycję klucze dostępu.In the container registry, under Settings, select Access keys. Powinna zostać wyświetlona liczba poświadczeń dostępu, w tym serwer logowania i Nazwa użytkownika oraz hasło administratora.You should see a number of access credentials, including Login server and the Username, and Password for an admin user.

    Te poświadczenia można dołączyć do manifestu wdrożenia, aby umożliwić urządzeniu usługi IoT Edge dostęp do ściągania obrazów kontenera z rejestru.These credentials can be included in the deployment manifest to give your IoT Edge device access to pull container images from the registry.

Teraz wiesz, gdzie jest przechowywany obraz kontenera Machine Learning.Now you know where the Machine Learning container image is stored. W następnej sekcji omówiono procedurę wyświetlania kontenera działającego jako moduł na urządzeniu IoT Edge.The next section walks through steps to view the container running as a module on your IoT Edge device.

Wyświetlanie wygenerowanych danychView the generated data

Wyświetlać możesz komunikaty generowane przez poszczególne moduły usługi IoT Edge oraz dostarczane do Twojego centrum IoT.You can view messages being generated by each IoT Edge module, and you can view messages that are delivered to your IoT hub.

Wyświetlanie danych na urządzeniu usługi IoT EdgeView data on your IoT Edge device

Na urządzeniu usługi IoT Edge można wyświetlać komunikaty wysyłane z każdego pojedynczego modułu.On your IoT Edge device, you can view the messages being sent from every individual module.

Może być konieczne użycie sudo programu w celu uzyskania podwyższonych uprawnień do uruchamiania iotedge poleceń.You may need to use sudo for elevated permissions to run iotedge commands. Wylogowanie się i ponowne zalogowanie do urządzenia automatycznie aktualizuje Twoje uprawnienia.Signing out and signing back in to your device automatically updates your permissions.

  1. Wyświetl wszystkie moduły na urządzeniu usługi IoT Edge.View all modules on your IoT Edge device.

    iotedge list
    
  2. Wyświetl komunikaty wysyłane z określonego urządzenia.View the messages being sent from a specific device. Użyj nazwy modułu z danych wyjściowych poprzedniego polecenia.Use the module name from the output of the previous command.

    iotedge logs <module_name> -f
    

Wyświetlanie danych otrzymywanych przez centrum IoTView data arriving at your IoT hub

Możesz wyświetlić komunikaty z urządzenia do chmury odbierane przez Centrum IoT przy użyciu rozszerzenia IoT Hub platformy Azure dla Visual Studio Code.You can view the device-to-cloud messages that your IoT hub receives by using the Azure IoT Hub extension for Visual Studio Code.

Poniższe kroki pokazują, jak skonfigurować program Visual Studio Code w celu monitorowania komunikatów urządzenie-chmura w centrum IoT.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 Eksploratorze Visual Studio Code w sekcji IoT Hub platformy Azure rozwiń węzeł urządzenia , aby wyświetlić listę urządzeń IoT.In the Visual Studio Code explorer, under the Azure IoT Hub section, expand Devices to see your list of IoT devices.

  2. Kliknij prawym przyciskiem myszy nazwę urządzenia IoT Edge i wybierz pozycję Rozpocznij monitorowanie wbudowanego punktu końcowego zdarzenia.Right-click the name of your IoT Edge device and select Start Monitoring Built-in Event Endpoint.

  3. Obserwuj komunikaty przychodzące z modułu tempSensor co pięć sekund.Observe the messages coming from tempSensor every five seconds. Treść komunikatu zawiera właściwość o nazwie anomaly, którą moduł machinelearningmodule ustawia na wartość true lub false.The message body contains a property called anomaly, which the machinelearningmodule provides with a true or false value. Właściwość AzureMLResponse zawiera wartość „OK”, jeśli model został uruchomiony pomyślnie.The AzureMLResponse property contains the value "OK" if the model ran successfully.

    Odpowiedź Azure Machine Learning w treści komunikatu

Czyszczenie zasobówClean up resources

Jeśli zamierzasz przejść do kolejnego zalecanego artykułu, możesz zachować utworzone zasoby oraz konfiguracje i użyć ich ponownie.If you plan to continue to the next recommended article, you can keep the resources and configurations that you created and reuse them. Możesz także nadal używać tego samego urządzenia usługi IoT Edge jako urządzenia testowego.You can also keep using the same IoT Edge device as a test device.

W przeciwnym razie możesz usunąć konfigurację lokalną i zasoby platformy Azure utworzone podczas pracy z tym artykułem, aby uniknąć naliczania opłat.Otherwise, you can delete the local configurations and the Azure resources that you created in this article to avoid charges.

Usuwanie zasobów platformy AzureDelete Azure resources

Usuwanie zasobów i grup zasobów platformy Azure jest nieodwracalne.Deleting Azure resources and resource groups is irreversible. Uważaj, aby nie usunąć przypadkowo niewłaściwych zasobów lub niewłaściwej grupy zasobów.Make sure that you don't accidentally delete the wrong resource group or resources. Jeśli utworzono Centrum IoT Hub w istniejącej grupie zasobów, która zawiera zasoby, które chcesz zachować, Usuń tylko zasób Centrum IoT, a nie grupę zasobów.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, not the resource group.

Aby usunąć zasoby:To delete the resources:

  1. Zaloguj się do witryny Azure Portal, a następnie wybierz pozycję Grupy zasobów.Sign in to the Azure portal, and then select Resource groups.

  2. Wybierz nazwę grupy zasobów, która zawiera zasoby testowe usługi IoT Edge.Select the name of the resource group that contains your IoT Edge test resources.

  3. Przejrzyj listę zasobów znajdujących się w danej grupie zasobów.Review the list of resources that are contained in your resource group. Jeśli chcesz usunąć je wszystkie, możesz wybrać pozycję Usuń grupę zasobów.If you want to delete all of them, you can select Delete resource group. Jeśli chcesz usunąć tylko niektóre z nich, możesz kliknąć poszczególne zasoby, aby usunąć je pojedynczo.If you want to delete only some of them, you can click into each resource to delete them individually.

Następne krokiNext steps

W tym samouczku wdrożono moduł usługi IoT Edge obsługiwany przez usługę Azure Machine Learning.In this tutorial, you deployed an IoT Edge module powered by Azure Machine Learning. Możesz teraz kontynuować pracę, korzystając ze wszystkich innych samouczków, aby dowiedzieć się o innych metodach, za pomocą których usługa Azure IoT Edge może ułatwiać przekształcanie danych w analizy biznesowe na urządzeniach brzegowych.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.