Entwickeln und Debuggen von Modulen für Azure IoT Edge mithilfe von Visual Studio 2019Use Visual Studio 2019 to develop and debug modules for Azure IoT Edge

Sie können Ihre Geschäftslogik in Azure IoT Edge-Module umwandeln.You can turn your business logic into modules for Azure IoT Edge. In diesem Artikel erfahren Sie, wie Sie Visual Studio 2019 als Haupttool zum Entwickeln und Debuggen von Modulen verwenden.This article shows you how to use Visual Studio 2019 as the main tool to develop and debug modules.

Die Azure IoT Edge-Tools für Visual Studio bietet die folgenden Vorteile:The Azure IoT Edge Tools for Visual Studio provides the following benefits:

  • Sie können Azure IoT Edge-Lösungen und -Module auf Ihrem lokalen Entwicklungscomputer erstellen, bearbeiten, kompilieren, ausführen und debuggen.Create, edit, build, run, and debug Azure IoT Edge solutions and modules on your local development computer.
  • Sie können Ihre Azure IoT Edge-Lösung über den Azure IoT Hub auf einem Azure IoT Edge-Gerät bereitstellen.Deploy your Azure IoT Edge solution to Azure IoT Edge device via Azure IoT Hub.
  • Sie können Ihre Azure IoT-Module in C oder C# programmieren und dabei von sämtlichen Vorteilen der Entwicklung mit Visual Studio profitieren.Code your Azure IoT modules in C or C# while having all of the benefits of Visual Studio development.
  • Sie können Ihre Azure IoT Edge-Geräte und -Module in der Benutzeroberfläche verwalten.Manage Azure IoT Edge devices and modules with UI.

In diesem Artikel erfahren Sie, wie Sie Ihre IoT Edge-Module mithilfe der Azure IoT Edge-Tools für Visual Studio 2019 entwickeln.This article shows you how to use the Azure IoT Edge Tools for Visual Studio 2019 to develop your IoT Edge modules. Außerdem erfahren Sie, wie Sie Ihr Projekt auf Ihrem Azure IoT Edge-Gerät bereitstellen.You also learn how to deploy your project to your Azure IoT Edge device. Derzeit bietet Visual Studio 2019 Unterstützung für Module, die in C und C# geschrieben wurden.Currently, Visual Studio 2019 provides support for modules written in C and C#. Die unterstützten Gerätearchitekturen sind Windows X64 und Linux X64 oder ARM32.The supported device architectures are Windows X64 and Linux X64 or ARM32. Weitere Informationen zu unterstützten Betriebssystemen, Sprachen und Architekturen finden Sie unter Sprach- und Architekturunterstützung.For more information about supported operating systems, languages, and architectures, see Language and architecture support.

VoraussetzungenPrerequisites

In diesem Artikel wird davon ausgegangen, dass Sie einen Computer oder virtuellen Computer unter Windows als Entwicklungscomputer verwenden.This article assumes that you use a computer or virtual machine running Windows as your development machine. Auf Windows-Computern können Sie entweder Windows- oder Linux-Module entwickeln.On Windows computers you can develop either Windows or Linux modules. Verwenden Sie zum Entwickeln von Windows-Modulen einen Windows-Computer, auf dem die Version 1809/Build 17763 oder höher ausgeführt wird.To develop Windows modules, use a Windows computer running version 1809/build 17763 or newer. Verwenden Sie zum Entwickeln von Linux-Modulen einen Windows-Computer, der die Anforderungen für Docker Desktop erfüllt.To develop Linux modules, use a Windows computer that meets the requirements for Docker Desktop.

Da in diesem Artikel Visual Studio 2019 als Hauptentwicklungstool verwendet wird, installieren Sie Visual Studio.Because this article uses Visual Studio 2019 as the main development tool, install Visual Studio. Schließen Sie die Workloads Azure-Entwicklung und Desktopentwicklung mit C++ in Ihre Visual Studio 2019-Installation ein.Make sure you include the Azure development and Desktop development with C++ workloads in your Visual Studio 2019 installation. Sie können Visual Studio 2019 ändern, um die erforderlichen Workloads hinzuzufügen.You can Modify Visual Studio 2019 to add the required workloads.

Wenn Visual Studio 2019 bereit ist, benötigen Sie auch die folgenden Tools und Komponenten:After your Visual Studio 2019 is ready, you also need the following tools and components:

  • Laden Sie die Azure IoT Edge-Tools aus dem Visual Studio Marketplace herunter, und installieren Sie sie, um ein IoT Edge-Projekt in Visual Studio 2019 zu erstellen.Download and install Azure IoT Edge Tools from the Visual Studio marketplace to create an IoT Edge project in Visual Studio 2019.

Tipp

Wenn Sie Visual Studio 2017 verwenden, laden Sie die Azure IoT Edge-Tools für VS 2017 aus dem Visual Studio Marketplace herunter, und installieren Sie sie.If you are using Visual Studio 2017, please download and install Azure IoT Edge Tools for VS 2017 from the Visual Studio marketplace

  • Laden Sie die Docker Community Edition auf Ihren Entwicklungscomputer herunter, und installieren Sie sie, um Ihre Modulimages erstellen und ausführen zu können.Download and install Docker Community Edition on your development machine to build and run your module images. Sie müssen für die Docker CE festlegen, dass sie entweder im Linux-Containermodus oder im Windows-Containermodus ausgeführt wird.You'll need to set Docker CE to run in either Linux container mode or Windows container mode.

  • Richten Sie Ihre lokale Entwicklungsumgebung zum Debuggen, Ausführen und Testen Ihrer IoT Edge-Lösung ein, indem Sie das Entwicklertool für Azure IoT EdgeHub installieren.Set up your local development environment to debug, run, and test your IoT Edge solution by installing the Azure IoT EdgeHub Dev Tool. Installieren Sie Python (2.7/3.6 und höher) und Pip und anschließend das iotedgehubdev-Paket, indem Sie in Ihrem Terminal den folgenden Befehl ausführen.Install Python (2.7/3.6+) and Pip and then install the iotedgehubdev package by running the following command in your terminal. Stellen Sie sicher, dass Sie eine Version des Azure IoT EdgeHub-Entwicklertools von höher als 0.3.0 verwenden.Make sure your Azure IoT EdgeHub Dev Tool version is greater than 0.3.0.

    pip install --upgrade iotedgehubdev
    
  • Klonen Sie das Repository, installieren Sie den vcpkg-Bibliotheks-Manager, und installieren Sie anschließend das Paket azure-iot-sdk-c für Windows.Clone the repository and install the Vcpkg library manager, and then install the azure-iot-sdk-c package for Windows.

    git clone https://github.com/Microsoft/vcpkg
    cd vcpkg
    bootstrap-vcpkg.bat
    
    vcpkg.exe install azure-iot-sdk-c:x64-windows
    vcpkg.exe --triplet x64-windows integrate install
    
  • Azure Container Registry oder Docker Hub.Azure Container Registry or Docker Hub.

    Tipp

    Sie können anstelle einer Cloudregistrierung auch eine lokale Docker-Registrierung für Prototyp- bzw. Testzwecke verwenden.You can use a local Docker registry for prototype and testing purposes instead of a cloud registry.

  • Zum Testen Ihres Moduls auf einem Gerät benötigen Sie einen aktiven IoT Hub mit mindestens einem IoT Edge-Gerät.To test your module on a device, you'll need an active IoT hub with at least one IoT Edge device. Um Ihren Computer als IoT Edge-Gerät zu verwenden, führen Sie die Schritte in der Schnellstartanleitung für Linux oder Windows aus.To use your computer as an IoT Edge device, follow the steps in the quickstart for Linux or Windows. Wenn Sie den IoT Edge-Daemon auf Ihrem Entwicklungscomputer ausführen, müssen Sie möglicherweise EdgeHub und EdgeAgent beenden, bevor Sie mit der Entwicklung in Visual Studio beginnen.If you are running IoT Edge daemon on your development machine, you might need to stop EdgeHub and EdgeAgent before you start development in Visual Studio.

Überprüfen Ihrer Tools-VersionCheck your tools version

  1. Wählen Sie im Menü Extras die Option Erweiterungen und Updates aus.From the Tools menu, select Extensions and Updates. Erweitern Sie Installiert > Tools. Dort finden Sie Azure IoT Edge-Tools und Cloud-Explorer für Visual Studio.Expand Installed > Tools and you can find Azure IoT Edge Tools and Cloud Explorer for Visual Studio.

  2. Notieren Sie sich die installierte Version.Note the installed version. Sie können diese Version mit der neuesten Version in Visual Studio Marketplace vergleichen (Cloud-Explorer, Azure IoT Edge).You can compare this version with the latest version on Visual Studio Marketplace (Cloud Explorer, Azure IoT Edge)

  3. Wenn Ihre Version älter ist als die Versionen, die auf dem Visual Studio Marketplace zur Verfügung stehen, aktualisieren Sie Ihre Tools in Visual Studio, wie im folgenden Abschnitt gezeigt wird.If your version is older than what's available on Visual Studio Marketplace, update your tools in Visual Studio as shown in the following section.

Aktualisieren Ihrer ToolsUpdate your tools

  1. Erweitern Sie im Dialogfeld Erweiterungen und Updates die Option Updates > Visual Studio Marketplace, wählen Sie Azure IoT Edge-Tools oder Cloud-Explorer für Visual Studio und dann Aktualisieren aus.In the Extensions and Updates dialog, expand Updates > Visual Studio Marketplace, select Azure IoT Edge Tools or Cloud Explorer for Visual Studio and select Update.

  2. Nachdem das Toolupdate heruntergeladen wurde, schließen Sie Visual Studio, damit die Tools mit dem VSIX-Installationsprogramm aktualisiert werden.After the tools update is downloaded, close Visual Studio to trigger the tools update using the VSIX installer.

  3. Wählen Sie im Installationsprogramm OK aus, um den Vorgang zu starten, und dann Ändern, um die Tools zu aktualisieren.In the installer, select OK to start and then Modify to update the tools.

  4. Nachdem das Update abgeschlossen ist, wählen Sie Schließen aus, und starten Sie Visual Studio neu.After the update is complete, select Close and restart Visual Studio.

Erstellen eines Azure IoT Edge-ProjektsCreate an Azure IoT Edge project

Die Azure IoT Edge-Projektvorlage in Visual Studio erstellt ein Projekt, das auf Azure IoT Edge-Geräten im Azure IoT Hub bereitgestellt werden kann.The Azure IoT Edge project template in Visual Studio creates a project that can be deployed to Azure IoT Edge devices in Azure IoT Hub. Sie erstellen zunächst eine Azure IoT Edge-Lösung und generieren anschließend das erste Modul in dieser Lösung.First you create an Azure IoT Edge solution, and then you generate the first module in that solution. Jede IoT Edge-Lösung kann mehrere Module enthalten.Each IoT Edge solution can contain more than one module.

Tipp

Die von Visual Studio erstellte Struktur eines IoT Edge-Projekts ist nicht die gleiche wie in Visual Studio Code.The IoT Edge project structure created by Visual Studio is not the same as in Visual Studio Code.

  1. Suchen Sie im Visual Studio-Dialogfeld „Neues Projekt“ das Projekt Azure IoT Edge, wählen Sie es aus, und klicken Sie auf Weiter.In Visual Studio new project dialog, search and select Azure IoT Edge project and click Next. Im Fenster zum Konfigurieren des Projekts geben Sie einen Namen und den Speicherort für Ihr Projekt ein, und wählen Sie dann Erstellen aus.In project configuration window, enter a name for your project and specify the location, and then select Create. Der Standardname für das Projekt ist AzureIoTEdgeApp1.The default project name is AzureIoTEdgeApp1.

    Erstellen eines neuen Projekts

  2. Wählen Sie im Fenster IoT Edge-Anwendung und -Modul hinzufügen entweder C#-Modul oder C++-Modul aus, und geben Sie den Namen und das Imagerepository für Ihr Modul an.In the Add IoT Edge Application and Module window, select either C# Module or C Module and then specify your module name and module image repository. Visual Studio füllt den Modulnamen automatisch mit localhost:5000/<Name Ihres Moduls> aus.Visual Studio autopopulates the module name with localhost:5000/<your module name>. Ersetzen Sie ihn durch Ihre eigenen Registrierungsinformationen.Replace it with your own registry information. Wenn Sie eine lokale Docker-Registrierung zum Testen verwenden, können Sie localhost nutzen.If you use a local Docker registry for testing, then localhost is fine. Nutzen Sie den Anmeldeserver aus Ihren Registrierungseinstellungen, wenn Sie Azure Container Registry verwenden.If you use Azure Container Registry, then use the login server from your registry's settings. Der Anmeldeserver hat die Form <Registrierungsname> .azurecr.io.The login server looks like <registry name>.azurecr.io. Ersetzen Sie nur den Teil localhost:5000 der Zeichenfolge, damit das endgültige Ergebnis die folgende Form hat: <Registrierungsname>.azurecr.io/ <Name Ihres Moduls> .Only replace the localhost:5000 part of the string so that the final result looks like <registry name>.azurecr.io/<your module name>. Der Standardname für das Modul ist IotEdgeModule1.The default module name is IotEdgeModule1

    Anwendung und Modul hinzufügen

  3. Wählen Sie OK aus, um die Azure IoT Edge-Lösung mit einem Modul zu erstellen, das entweder C# oder C verwendet.Select OK to create the Azure IoT Edge solution with a module that uses either C# or C.

Ihre Lösung enthält nun das Projekt AzureIoTEdgeApp1.Linux.Amd64 oder das Projekt AzureIoTEdgeApp1.Windows.Amd64 sowie das Projekt IotEdgeModule1.Now you have an AzureIoTEdgeApp1.Linux.Amd64 project or an AzureIoTEdgeApp1.Windows.Amd64 project, and also an IotEdgeModule1 project in your solution. Jedes Projekt vom Typ AzureIoTEdgeApp1 enthält eine Datei namens deployment.template.json. Diese Datei definiert die Module, die Sie für Ihre IoT Edge-Lösung erstellen und bereitstellen möchten, sowie die Routen zwischen Modulen.Each AzureIoTEdgeApp1 project has a deployment.template.json file, which defines the modules you want to build and deploy for your IoT Edge solution, and also defines the routes between modules. Die Standardlösung besteht aus einem SimulatedTemperatureSensor- und einem IoTEdgeModule1-Modul.The default solution has a SimulatedTemperatureSensor module and a IotEdgeModule1 module. Das SimulatedTemperatureSensor-Modul generiert simulierte Daten für das IoTEdgeModule1-Modul, und der Standardcode im IoTEdgeModule1-Modul sendet empfangene Nachrichten direkt an den Azure IoT Hub.The SimulatedTemperatureSensor module generates simulated data to the IotEdgeModule1 module, while the default code in the IotEdgeModule1 module directly pipes received messages to Azure IoT Hub.

Das Projekt IotEdgeModule1 ist eine .NET Core 2.1-Konsolenanwendung, wenn es sich um ein C#-Modul handelt.The IotEdgeModule1 project is a .NET Core 2.1 console application if it's a C# module. Es enthält die erforderlichen Dockerfiles, die Sie für Ihr IoT Edge-Gerät benötigen, das entweder mit einem Windows-Container oder einem Linux-Container läuft.It contains required Docker files you need for your IoT Edge device running with either a Windows container or Linux container. Die Datei module.json beschreibt die Metadaten eines Moduls.The module.json file describes the metadata of a module. Der eigentliche Modulcode, der das Azure IoT-Geräte-SDK als Abhängigkeit verwendet, befindet sich in der Datei Program.cs oder main.c.The actual module code, which takes Azure IoT Device SDK as a dependency, is found in the Program.cs or main.c file.

Entwickeln Ihres ModulsDevelop your module

Der in der Lösung enthaltene Standardmodulcode befindet sich unter IotEdgeModule1 > Program.cs (C#) oder main.c (C).The default module code that comes with the solution is located at IotEdgeModule1 > Program.cs (for C#) or main.c (C). Das Modul und die Datei deployment.template.json werden so eingerichtet, dass Sie die Lösung erstellen, in Ihre Containerregistrierung verschieben und zum Starten des Tests für ein Gerät bereitstellen können, ohne Code ändern zu müssen.The module and the deployment.template.json file are set up so that you can build the solution, push it to your container registry, and deploy it to a device to start testing without touching any code. Das Modul ist so konzipiert, dass es eine Eingabe aus einer Quelle akzeptiert (in diesem Fall das Daten simulierende SimulatedTemperatureSensor-Modul) und an den Azure IoT Hub sendet.The module is built to take input from a source (in this case, the SimulatedTemperatureSensor module that simulates data) and pipe it to Azure IoT Hub.

Wenn Sie bereit sind, die Modulvorlage mit Ihrem eigenen Code anzupassen, erstellen Sie mit den Azure IoT Hub SDKs Module, die die wesentlichen Anforderungen für IoT-Lösungen wie Sicherheit, Geräteverwaltung und Zuverlässigkeit berücksichtigen.When you're ready to customize the module template with your own code, use the Azure IoT Hub SDKs to build modules that address the key needs for IoT solutions such as security, device management, and reliability.

Initialisieren von „iotedgehubdev“ mit der IoT Edge-GeräteverbindungszeichenfolgeInitialize iotedgehubdev with IoT Edge device connection string

  1. Kopieren Sie die Verbindungszeichenfolge eines beliebigen IoT Edge-Geräts aus primäre Verbindungszeichenfolge in den Visual Studio Cloud-Explorer.Copy the connection string of any IoT Edge device from Primary Connection String in the Visual Studio Cloud Explorer. Kopieren Sie nicht die Verbindungszeichenfolge eines Nicht-Edge-Geräts, da das Symbol eines IoT Edge-Geräts anders als das Symbol eines Nicht-Edge-Geräts ist.Be sure not to copy the connection string of a non-Edge device, as the icon of an IoT Edge device is different from the icon of a non-Edge device.

    Kopieren der Edge-Geräteverbindungszeichenfolge

  2. Wechseln Sie zu Tools > Azure IoT Edge-Tools > IoT Edge Simulator einrichten, fügen Sie die Verbindungszeichenfolge ein, und klicken Sie auf OK.Go to Tools > Azure IoT Edge Tools > Setup IoT Edge Simulator, paste the connection string and click OK.

    Öffnen des Fensters „Set Edge Device Connection String“ (Edge-Geräteverbindungszeichenfolge festlegen)

  3. Geben Sie die Verbindungszeichenfolge aus dem ersten Schritt ein, und wählen Sie OK aus.Enter the connection string from the first step and then select OK.

Hinweis

Sie müssen diese Schritte auf Ihrem Entwicklungscomputer nur einmal ausführen, weil die Ergebnisse auf alle nachfolgenden Azure IoT Edge-Lösungen automatisch angewendet werden.You need to follow these steps only once on your development computer as the results are automatically applied to all subsequent Azure IoT Edge solutions. Diese Schritte können erneut ausgeführt werden, wenn Sie in eine andere Verbindungszeichenfolge ändern müssen.This procedure can be followed again if you need to change to a different connection string.

Erstellen und Debuggen eines einzelnen ModulsBuild and debug single module

In der Regel möchten Sie jedes Modul testen und debuggen, bevor Sie es in einer Gesamtlösung mit mehreren Modulen ausführen.Typically, you'll want to test and debug each module before running it within an entire solution with multiple modules.

  1. Klicken Sie mit der rechten Maustaste auf IotEdgeModule1, und wählen Sie im Kontextmenü Als Startprojekt festlegen aus.Right-click IotEdgeModule1 and select Set as StartUp Project from the context menu.

    Startprojekt festlegen

  2. Drücken Sie F5, oder klicken Sie auf die Schaltfläche unten, um das Modul auszuführen. Beim ersten Mal kann dies 10–20 Sekunden dauern.Press F5 or click the button below to run the module; it may take 10–20 seconds the first time you do so.

    Modul ausführen

  3. Wenn das Modul erfolgreich initialisiert wurde, sollte eine .NET Core-Konsolenanwendung gestartet werden.You should see a .NET Core console app start if the module has been initialized successfully.

    Modul wird ausgeführt

  4. Legen Sie bei Verwendung von C# in Program.cs einen Haltepunkt in der Funktion PipeMessage() fest. Bei Verwendung von C muss der Haltepunkt in main.c in der Funktion InputQueue1Callback() festgelegt werden.If developing in C#, set a breakpoint in the PipeMessage() function in Program.cs; if using C, set a breakpoint in the InputQueue1Callback() function in main.c. Zu Testzwecken können Sie eine Nachricht senden. Führen Sie dazu in einer Git Bash- oder WSL Bash-Shell den folgenden Befehl aus.You can then test it by sending a message by running the following command in a Git Bash or WSL Bash shell. (Den curl-Befehl können Sie nicht aus einer PowerShell oder Eingabeaufforderung ausführen.)(You cannot run the curl command from a PowerShell or command prompt.)

    curl --header "Content-Type: application/json" --request POST --data '{"inputName": "input1","data":"hello world"}' http://localhost:53000/api/v1/messages
    

    Debuggen eines Einzelmoduls

    Es sollte ein Breakpoint ausgelöst werden.The breakpoint should be triggered. Sie können Variablen in Visual Studio im Fenster Lokal ansehen.You can watch variables in the Visual Studio Locals window.

    Tipp

    Sie können auch PostMan oder andere API-Tools (anstelle von curl) zum Senden von Nachrichten verwenden.You can also use PostMan or other API tools to send messages instead of curl.

  5. Drücken Sie zum Beenden des Debuggen auf STRG + F5 oder klicken Sie auf die Schaltfläche „Beenden“.Press Ctrl + F5 or click the stop button to stop debugging.

Erstellen und Debuggen einer IoT Edge-Lösung mit mehreren ModulenBuild and debug IoT Edge solution with multiple modules

Nachdem Sie ein Einzelmodul entwickelt haben, möchten Sie jetzt vielleicht eine Gesamtlösung mit mehreren Modulen ausführen und debuggen.After you're done developing a single module, you might want to run and debug an entire solution with multiple modules.

  1. Fügen Sie der Lösung ein zweites Modul hinzu, indem Sie mit der rechten Maustaste auf AzureIoTEdgeApp1 klicken und Hinzufügen > Neues IoT Edge-Modul auswählen.Add a second module to the solution by right-clicking AzureIoTEdgeApp1 and selecting Add > New IoT Edge Module. Der Standardname des zweiten Moduls lautet IotEdgeModule2, und es fungiert als ein weiteres Pipemodul.The default name of the second module is IotEdgeModule2 and will act as another pipe module.

  2. Öffnen Sie die Datei deployment.template.json. Dann sehen Sie, dass IotEdgeModule2 im Abschnitt Module hinzugefügt wurde.Open the file deployment.template.json and you'll see IotEdgeModule2 has been added in the modules section. Ersetzen Sie den Abschnitt routes durch Folgendes:Replace the routes section with the following. Wenn Sie Ihre Modulnamen angepasst haben, stellen Sie sicher, dass Sie diese Namen entsprechend aktualisieren.If you have customized your module names, make sure you update these names to match.

        "routes": {
          "IotEdgeModule1ToIoTHub": "FROM /messages/modules/IotEdgeModule1/outputs/* INTO $upstream",
          "sensorToIotEdgeModule1": "FROM /messages/modules/SimulatedTemperatureSensor/outputs/temperatureOutput INTO BrokeredEndpoint(\"/modules/IotEdgeModule1/inputs/input1\")",
          "IotEdgeModule2ToIoTHub": "FROM /messages/modules/IotEdgeModule2/outputs/* INTO $upstream",
          "sensorToIotEdgeModule2": "FROM /messages/modules/SimulatedTemperatureSensor/outputs/temperatureOutput INTO BrokeredEndpoint(\"/modules/IotEdgeModule2/inputs/input1\")"
        },
    
  3. Klicken Sie mit der rechten Maustaste auf AzureIoTEdgeApp1, und wählen Sie im Kontextmenü Als Startprojekt festlegen aus.Right-click AzureIoTEdgeApp1 and select Set as StartUp Project from the context menu.

  4. Erstellen Sie Ihre Breakpoints, und drücken Sie F5, um mehrere Module gleichzeitig auszuführen und zu debuggen.Create your breakpoints and then press F5 to run and debug multiple modules simultaneously. Daraufhin sollten mehrere Fenster der .NET Core-Konsolen-App angezeigt werden, wobei jedes Fenster ein anderes Modul darstellt.You should see multiple .NET Core console app windows, which each window representing a different module.

    Debuggen mehrerer Module

  5. Drücken Sie zum Beenden des Debuggens STRG+F5, oder wählen Sie die Schaltfläche „Beenden“ aus.Press Ctrl + F5 or select the stop button to stop debugging.

Erstellen und Übermitteln des Images mithilfe von PushBuild and push images

  1. Stellen Sie sicher, dass AzureIoTEdgeApp1 das Startprojekt ist.Make sure AzureIoTEdgeApp1 is the start-up project. Wählen Sie entweder Debuggen oder Version als Konfiguration zum Kompilieren Ihrer Modulimages aus.Select either Debug or Release as the configuration to build for your module images.

    Hinweis

    Bei der Auswahl von Debuggen verwendet Visual Studio Dockerfile.(amd64|windows-amd64).debug zum Erstellen von Docker-Images.When choosing Debug, Visual Studio uses Dockerfile.(amd64|windows-amd64).debug to build Docker images. Dies bindet den .NET Core-Befehlszeilendebugger VSDBG beim Erstellen in Ihr Containerimage ein.This includes the .NET Core command-line debugger VSDBG in your container image while building it. Wir empfehlen Ihnen, für produktionsbereite IoT Edge-Module die Konfiguration Version zu verwenden, die Dockerfile.(amd64|windows-amd64) ohne VSDBG verwendet.For production-ready IoT Edge modules, we recommend that you use the Release configuration, which uses Dockerfile.(amd64|windows-amd64) without VSDBG.

  2. Wenn Sie eine private Registrierung wie Azure Container Registry verwenden, melden Sie sich dort mit dem folgenden Docker-Befehl an.If you're using a private registry like Azure Container Registry, use the following Docker command to sign in to it. Wenn Sie eine lokale Registrierung verwenden, können Sie eine lokale Registrierung ausführen.If you're using local registry, you can run a local registry.

    docker login -u <ACR username> -p <ACR password> <ACR login server>
    
  3. Wenn Sie eine private Registrierung wie Azure Container Registry verwenden, müssen Sie Ihre Anmeldeinformationen für die Registrierung den Laufzeiteinstellungen hinzufügen, die in der Datei deployment.template.json enthalten sind.If you're using a private registry like Azure Container Registry, you need to add your registry login information to the runtime settings found in the file deployment.template.json. Ersetzen Sie die Platzhalter durch Ihren tatsächlichen Benutzernamen, das Kennwort und den Registrierungsnamen des ACR-Administrators.Replace the placeholders with your actual ACR admin username, password, and registry name.

          "settings": {
            "minDockerVersion": "v1.25",
            "loggingOptions": "",
            "registryCredentials": {
              "registry1": {
                "username": "<username>",
                "password": "<password>",
                "address": "<registry name>.azurecr.io"
              }
            }
          }
    
  4. Klicken Sie mit der rechten Maustaste auf AzureIoTEdgeApp1, und wählen Sie die Option Edge-Lösung kompilieren und pushen aus, um das Docker-Image für jedes Modul zu kompilieren und zu pushen.Right-click AzureIoTEdgeApp1 and select Build and Push Edge Solution to build and push the Docker image for each module.

    Erstellen und des Images mithilfe von Push

Bereitstellen der LösungDeploy the solution

Im Schnellstartartikel, anhand dessen Sie Ihr IoT Edge-Gerät eingerichtet haben, haben Sie ein Modul über das Azure-Portal bereitgestellt.In the quickstart article that you used to set up your IoT Edge device, you deployed a module by using the Azure portal. Sie können Module auch mit dem Cloud-Explorer für Visual Studio bereitstellen.You can also deploy modules using the Cloud Explorer for Visual Studio. Weil Sie ein Bereitstellungsmanifest für Ihr Szenario und die Datei deployment.json schon vorbereitet haben, müssen Sie lediglich ein Gerät auswählen, um die Bereitstellung zu empfangen.You already have a deployment manifest prepared for your scenario, the deployment.json file and all you need to do is select a device to receive the deployment.

  1. Öffnen Sie den Cloud-Explorer durch Klicken auf Ansicht > Cloud-Explorer.Open Cloud Explorer by clicking View > Cloud Explorer. Vergewissern Sie sich, dass Sie bei Visual Studio 2019 angemeldet sind.Make sure you've logged in to Visual Studio 2019.

  2. Erweitern Sie in Cloud-Explorer Ihr Abonnement, suchen Sie Ihren Azure IoT Hub und das Azure IoT Edge-Gerät, das Sie bereitstellen möchten.In Cloud Explorer, expand your subscription, find your Azure IoT Hub and the Azure IoT Edge device you want to deploy.

  3. Klicken Sie mit der rechten Maustaste auf das IoT Edge-Gerät, um eine Bereitstellung dafür zu erstellen. Sie müssen unter $AzureIoTEdgeAppSolutionDir\config\deployment.(amd64|amd64.debug|windows-amd64).json die Bereitstellungsmanifestdatei auswählen.Right-click on the IoT Edge device to create a deployment for it, you need to select the deployment manifest file under the $AzureIoTEdgeAppSolutionDir\config\deployment.(amd64|amd64.debug|windows-amd64).json.

    Hinweis

    Wählen Sie auf keinen Fall $AzureIoTEdgeAppSolutionDir\config\deployment_for_local_debug.json aus.You must not select $AzureIoTEdgeAppSolutionDir\config\deployment_for_local_debug.json

  4. Klicken Sie auf die Schaltfläche „Aktualisieren“, um sich anzusehen, wie die neuen Module zusammen mit dem SimulatedTemperatureSensor-Modul sowie $edgeAgent und $edgeHub ausgeführt werden.Click the refresh button to see the new modules running along with the SimulatedTemperatureSensor module and $edgeAgent and $edgeHub.

Anzeigen generierter DatenView generated data

  1. Um die D2C-Nachricht für ein bestimmtes Gerät zu überwachen, wählen Sie dieses Gerät in der Liste aus, und klicken Sie im Fenster Aktion auf Überwachen des integrierten Ereignisendpunkts starten.To monitor the D2C message for a specific device, select the device in the list and then click Start Monitoring Built-in Event Endpoint in the Action window.

  2. Um die Überwachung von Daten zu beenden, wählen Sie das Gerät in der Liste aus. Wählen Sie dann im Fenster Aktion die Option Überwachen des integrierten Ereignisendpunkts beenden aus.To stop monitoring data, select the device in the list and then select Stop Monitoring Built-in Event Endpoint in the Action window.

Nächste SchritteNext steps

Weitere Informationen zum Entwickeln von benutzerdefinierten Modulen für Ihre IoT Edge-Geräte finden Sie unter Verstehen und Verwenden von Azure IoT Hub SDKs.To develop custom modules for your IoT Edge devices, Understand and use Azure IoT Hub SDKs.