Vorbereiten Ihrer Entwicklungs- und Testumgebung für IoT EdgePrepare your development and test environment for IoT Edge

Azure IoT Edge verschiebt Ihre vorhandene Geschäftslogik auf Geräte, die an der Grenze (Edge) arbeiten.Azure IoT Edge moves your existing business logic to devices operating at the edge. Um Ihre Anwendungen und Workloads für die Ausführung als IoT Edge-Module vorzubereiten, müssen Sie sie als Container erstellen.To prepare your applications and workloads to run as IoT Edge modules, you need to build them as containers. Dieser Artikel enthält Anleitungen zur Konfiguration Ihrer Entwicklungsumgebung, damit Sie erfolgreich eine IoT Edge-Lösung erstellen können.This article provides guidance around how to configure your development environment so that you can successfully create an IoT Edge solution. Nachdem Sie Ihre Entwicklungsumgebung eingerichtet haben, können Sie lernen, wie Sie beim Entwickeln Ihrer eigenen IoT Edge-Module vorgehen.Once you have your development environment set up, then you can learn how to Develop your own IoT Edge modules.

Für jede IoT Edge-Lösung müssen immer mindestens zwei Computer in Betracht gezogen werden.In any IoT Edge solution, there are at least two machines to consider. Einer ist das eigentliche IoT Edge-Gerät (oder die Geräte), das das IoT Edge-Modul ausführt.One is the IoT Edge device (or devices) itself, which runs the IoT Edge module. Der andere ist der Entwicklungscomputer, den Sie zum Erstellen, Testen und Bereitstellen von Modulen verwenden.The other is the development machine that you use to build, test, and deploy modules. Dieser Artikel konzentriert sich in der Hauptsache auf den Entwicklungscomputer.This article focuses primarily on the development machine. Für Testzwecke kann beides der gleiche Computer sein.For testing purposes, the two machines can be the same. Sie können IoT Edge auf Ihrem Entwicklungscomputer ausführen und Module auf ihm bereitstellen.You can run IoT Edge on your development machine and deploy modules to it.

BetriebssystemOperating system

Azure IoT Edge kann auf einem bestimmten Satz unterstützter Betriebssysteme ausgeführt werden.Azure IoT Edge runs on a specific set of supported operating systems. Zum Zweck der Entwicklung für IoT Edge können die meisten Betriebssysteme verwendet werden, die eine Containerengine ausführen können.For developing for IoT Edge, you can use most operating systems that can run a container engine. Die Containerengine ist eine Anforderung auf dem Entwicklungscomputer, um Ihre Module als Container zu erstellen und sie per Push in eine Containerregistrierung hochzuladen.The container engine is a requirement on the development machine to build your modules as containers and push them to a container registry.

Wenn auf Ihrem Entwicklungscomputer Azure IoT Edge nicht ausgeführt werden kann, fahren Sie fort, diesen Artikel zu lesen, um mehr über Testtools zu erfahren, die Sie beim lokalen Testen und Debuggen unterstützen.If your development machine can't run Azure IoT Edge, continue in this article to learn about testing tools that help you test and debug locally.

Das Betriebssystem Ihres Entwicklungscomputers muss nicht mit dem Betriebssystem Ihres IoT Edge-Geräts übereinstimmen.The operating system of your development machine doesn't have to match the operating system of your IoT Edge device. Allerdings muss das Containerbetriebssystem auf dem Entwicklungscomputer und dem IoT Edge-Gerät gleich sein.However, the container operating system must be consistent between development machine and IoT Edge device. Beispielsweise können Sie Module auf einem Windows-Computer entwickeln und sie auf einem Linux-Gerät bereitstellen.For example, you can develop modules on a Windows machine and deploy them to a Linux device. Auf dem Windows-Computer müssen Linux-Container ausgeführt werden, um Module für das Linux-Gerät zu erstellen.The Windows machine needs to run Linux containers to build the modules for the Linux device.

ContainerengineContainer engine

Das grundlegende Konzept von IoT Edge besteht darin, dass Sie Ihre Geschäfts- und Cloudlogik remote auf Geräten bereitstellen können, indem Sie sie in Containern verpacken.The central concept of IoT Edge is that you can remotely deploy your business and cloud logic to devices by packaging it into containers. Um Container zu erstellen, benötigen Sie eine Containerengine auf Ihrem Entwicklungscomputer.To build containers, you need a container engine on your development machine.

Die einzige unterstützte Containerengine für IoT Edge-Geräte in der Produktion ist Moby.The only supported container engine for IoT Edge devices in production is Moby. Allerdings kann jede Containerengine, die mit der Open Container Initiative kompatibel ist, wie etwa Docker, zum Erstellen von IoT Edge-Modulimages verwendet werden.However, any container engine compatible with the Open Container Initiative, like Docker, is capable of building IoT Edge module images.

EntwicklungstoolsDevelopment tools

Sowohl Visual Studio als auch Visual Studio Code verfügen über Add-On-Erweiterungen, um die Entwicklung von IoT Edge-Lösungen zu unterstützen.Both Visual Studio and Visual Studio Code have add-on extensions to help develop IoT Edge solutions. Diese Erweiterungen stellen sprachspezifische Vorlagen bereit, die Sie beim Erstellen und Bereitstellen neuer IoT Edge-Szenarien unterstützen.These extensions provide language-specific templates to help create and deploy new IoT Edge scenarios. Die Azure IoT Edge-Erweiterungen für Visual Studio und Visual Studio Code helfen Ihnen beim Programmieren, Erstellen, Bereitstellen und Debuggen Ihrer IoT Edge-Lösungen.The Azure IoT Edge extensions for Visual Studio and Visual Studio Code help you code, build, deploy, and debug your IoT Edge solutions. Sie können eine gesamte IoT Edge-Projektmappe erstellen, die mehrere Module enthält, und die Erweiterungen aktualisieren automatisch eine Vorlage für ein Bereitstellungsmanifest mit jedem neu hinzugefügten Modul.You can create an entire IoT Edge solution that contains multiple modules, and the extensions automatically update a deployment manifest template with each new module addition. Mit den Erweiterungen können Sie außerdem Ihre IoT-Geräte aus Visual Studio oder Visual Studio Code verwalten.With the extensions, you can also manage your IoT devices from within Visual Studio or Visual Studio Code. Stellen Sie Module auf einem Gerät bereit, überwachen Sie ihren Status, und zeigen Sie die bei IoT Hub eingehenden Nachrichten an.Deploy modules to a device, monitor the status, and view messages as they arrive at IoT Hub. Beide Erweiterungen verwenden das IoT EdgeHub Dev Tool, um ebenso lokale Ausführung und lokales Debuggen auf Ihrem Entwicklungscomputer zu ermöglichen.Both extensions use the IoT EdgeHub dev tool to enable local running and debugging of modules on your development machine as well.

Wenn Sie es vorziehen, mit anderen Editoren oder an der Befehlszeile zu entwickeln, stellt das Azure IoT Edge Dev Tool Befehle zur Verfügung, mit denen Sie an der Befehlszeile entwickeln und testen können.If you prefer to develop with other editors or from the CLI, the Azure IoT Edge dev tool provides commands so that you can develop and test from the command line. Sie können neue IoT Edge-Szenarien erstellen, Modulimages generieren, Module in einem Simulator ausführen und die an IoT Hub gesendeten Nachrichten überwachen.You can create new IoT Edge scenarios, build module images, run modules in a simulator, and monitor messages sent to IoT Hub.

Visual Studio Code-ErweiterungVisual Studio Code extension

Die Azure IoT Edge-Erweiterung für Visual Studio Code stellt Vorlagen für IoT Edge-Module zur Verfügung, die auf Programmiersprachen aufbauen, darunter C, C#, Java, Node.js und Python sowie Azure Functions in C#.The Azure IoT Edge extension for Visual Studio Code provides IoT Edge module templates built on programming languages including C, C#, Java, Node.js, and Python as well as Azure functions in C#.

Weitere Informationen und Downloadmöglichkeiten finden Sie unter Azure IoT-Tools für Visual Studio Code.For more information and to download, see Azure IoT Tools for Visual Studio Code.

Über die IoT Edge-Erweiterungen hinaus finden Sie es möglicherweise nützlich, weitere Erweiterungen für die Entwicklung zu installieren.In addition to the IoT Edge extensions, you may find it helpful to install additional extensions for developing. Beispielsweise können Sie Docker Support for Visual Studio Code verwenden, um Ihre Images, Container und Registrierungen zu verwalten.For example, you can use Docker Support for Visual Studio Code to manage your images, containers, and registries. Darüber hinaus verfügen alle wichtigen unterstützten Sprachen über Erweiterungen für Visual Studio Code, die bei der Entwicklung von Modulen nützlich sein können.Additionally, all the major supported languages have extensions for Visual Studio Code that can help when you're developing modules.

VoraussetzungenPrerequisites

Für die Modulvorlagen für einige Sprachen und Dienste gelten Voraussetzungen, die für die Erstellung von Projektordnern auf Ihrem Entwicklungscomputer mit Visual Studio Code erforderlich sind.The module templates for some languages and services have prerequisites that are necessary to build the project folders on your development machine with Visual Studio Code.

ModulvorlageModule template VoraussetzungPrerequisite
Azure-FunktionenAzure Functions .NET Core 2.1 SDK.NET Core 2.1 SDK
CC Git-ClientGit
C#C# .NET Core 2.1 SDK.NET Core 2.1 SDK
JavaJava
Node.jsNode.js
PythonPython

Erweiterung für Visual Studio 2017/2019Visual Studio 2017/2019 extension

Die Azure IoT Edge-Tools für Visual Studio bieten eine auf C# und C basierende IoT Edge-Modulvorlage.The Azure IoT Edge tools for Visual Studio provide an IoT Edge module template built on C# and C.

Weitere Informationen und Downloadmöglichkeiten finden Sie unter Azure IoT Edge Tools (Preview) for Visual Studio 2017 (Azure IoT Edge-Tools (Vorschauversion) für Visual Studio 2017) bzw. Azure IoT Edge Tools for Visual Studio 2019 (Azure IoT Edge-Tools für Visual Studio 2019).For more information and to download, see Azure IoT Edge Tools for Visual Studio 2017 or Azure IoT Edge Tools for Visual Studio 2019.

IoT Edge Dev ToolIoT Edge dev tool

Das Azure IoT Edge Dev Tool vereinfacht die IoT Edge-Entwicklung mit Funktionen für die Befehlszeile.The Azure IoT Edge dev tool simplifies IoT Edge development with command-line abilities. Dieses Tool stellt CLI-Befehle zum Entwickeln, Debuggen und Testen von Modulen bereit.This tool provides CLI commands to develop, debug, and test modules. Das IoT Edge Dev Tool funktioniert mit Ihrem Entwicklungssystem, gleich, ob Sie die Abhängigkeiten manuell auf Ihrem System installiert haben oder den IoT Edge Dev Container verwenden.The IoT Edge dev tool works with your development system, whether you've manually installed the dependencies on your machine or are using the IoT Edge dev container.

Weitere Informationen, auch zum Einstieg, finden Sie im IoT Edge Dev Tool-Wiki.For more information and to get started, see IoT Edge dev tool wiki.

TesttoolsTesting tools

Es sind verschiedene Testtools verfügbar, die Ihnen die Simulation von IoT Edge-Geräten oder das effizientere Debuggen von Modulen erleichtern.Several testing tools exist to help you simulate IoT Edge devices or debug modules more efficiently. Die folgende Tabelle zeigt einen allgemeinen Vergleich der Tools; jedes Tool wird anschließend in einzelnen Abschnitten genauer beschrieben.The following table shows a high-level comparison between the tools, and then individual sections describe each tool more specifically.

Für Produktionsbereitstellungen wird nur die IoT Edge-Runtime unterstützt, mithilfe der folgenden Tools können Sie aber IoT Edge-Geräte für Entwicklungs- und Testzwecke simulieren oder auf einfache Weise erstellen.Only the IoT Edge runtime is supported for production deployments, but the following tools allow you to simulate or easily create IoT Edge devices for development and testing purposes. Diese Tools schließen sich nicht gegenseitig aus sondern können vielmehr zu einer vollständigen Entwicklungsumgebung kombiniert werden.These tools aren't mutually exclusive, but can work together for a complete development experience.

ToolTool Andere BezeichnungAlso known as Unterstützte PlattformenSupported platforms Am besten geeignet für:Best for
IoT EdgeHub Dev ToolIoT EdgeHub dev tool iotedgehubdeviotedgehubdev Windows, Linux, MacOSWindows, Linux, MacOS Simulieren eines Geräts zum Debuggen von Modulen.Simulating a device to debug modules.
IoT Edge Dev-ContainerIoT Edge dev container microsoft/iotedgedevmicrosoft/iotedgedev Windows, Linux, MacOSWindows, Linux, MacOS Entwickeln ohne die Installation von Abhängigkeiten.Developing without installing dependencies.
IoT Edge Runtime in einem ContainerIoT Edge runtime in a container iotedgeciotedgec Windows, Linux, MacOS, ARMWindows, Linux, MacOS, ARM Testen auf einem Gerät, das die Runtime möglicherweise nicht unterstützt.Testing on a device that may not support the runtime.
IoT Edge-GerätecontainerIoT Edge device container toolboc/azure-iot-edge-device-containertoolboc/azure-iot-edge-device-container Windows, Linux, MacOS, ARMWindows, Linux, MacOS, ARM Testen in einem Szenario mit vielen IoT Edge-Geräten in großem Maßstab.Testing a scenario with many IoT Edge devices at scale.

IoT EdgeHub Dev ToolIoT EdgeHub dev tool

Das Azure IoT EdgeHub Dev Tool stellt eine lokale Entwicklungs- und Debugumgebung zur Verfügung.The Azure IoT EdgeHub dev tool provides a local development and debug experience. Das Tool ermöglicht das Starten von IoT Edge-Modulen ohne die IoT Edge-Runtime, so dass Sie IoT Edge-Module und -Projektmappen lokal erstellen, entwickeln, testen und debuggen können.The tool helps start IoT Edge modules without the IoT Edge runtime so that you can create, develop, test, run, and debug IoT Edge modules and solutions locally. Sie brauchen keine Images per Push in eine Containerregistrierung hochzuladen und auf einem Gerät bereitzustellen, um sie zu testen.You don't have to push images to a container registry and deploy them to a device for testing.

Das IoT EdgeHub Dev Tool wurde für die gemeinsame Verwendung mit den Visual Studio- und Visual Studio Code-Erweiterungen sowie mit dem IoT Edge Dev Tool entwickelt.The IoT EdgeHub dev tool was designed to work in tandem with the Visual Studio and Visual Studio Code extensions, as well as with the IoT Edge dev tool. Es unterstützt sowohl die innere Schleife der Entwicklung als auch die äußere Schleife mit Testing und ist auch in die DevOps-Tools integriert.It supports inner loop development as well as outer loop testing, so integrates with the DevOps tools too.

Weitere Informationen, auch zur Installation, finden Sie unter Azure IoT EdgeHub Dev Tool.For more information and to install, see Azure IoT EdgeHub dev tool.

IoT Edge Dev-ContainerIoT Edge dev container

Der Azure IoT Edge Dev-Container ist ein Docker-Container, der alle Abhängigkeiten enthält, die Sie für die IoT Edge-Entwicklung benötigen.The Azure IoT Edge dev container is a Docker container that has all the dependencies that you need for IoT Edge development. Dieser Container macht den Einstieg leicht, ganz gleich, in welcher Sprache Sie entwickeln möchten, einschließlich C#, Python, Node.js und Java.This container makes it easy to get started with whichever language you want to develop in, including C#, Python, Node.js, and Java. Sie brauchen lediglich eine Containerengine zu installieren, wie Docker oder Moby, um die Inhalte auf Ihren Entwicklungscomputer herunterzuladen.All you need to install is a container engine, like Docker or Moby, to pull the container to your development machine.

Weitere Informationen finden Sie unter Azure IoT Edge Dev-Container.For more information, see Azure IoT Edge dev container.

IoT Edge Runtime in einem ContainerIoT Edge runtime in a container

Die IoT Edge-Runtime in einem Container stellt eine vollständige Laufzeitumgebung zur Verfügung, die Ihre Verbindungszeichenfolge als Umgebungsvariable annimmt.The IoT Edge runtime in a container provides a complete runtime that takes your device connection string as an environment variable. Dieser Container ermöglicht Ihnen das Testen von IoT Edge-Modulen und -Szenarien auf einem System, das die Runtimes nicht nativ unterstützt, wie MacOS.This container enables you to test IoT Edge modules and scenarios on a system that may not support the runtime natively, like MacOS. Alle von Ihnen bereitgestellten Module werden außerhalb des Runtimecontainers gestartet.Any modules that you deploy will be started outside of the runtime container. Wenn Sie möchten, dass die Runtime und eventuell bereitgestellte Module koexistent im gleichen Container vorhanden sind, erwägen Sie stattdessen den IoT Edge-Gerätecontainer.If you want the runtime and any deployed modules to exist within the same container, consider the IoT Edge device container instead.

Weitere Informationen finden Sie unter Ausführen von Azure IoT Edge in einem Container.For more information, see Running Azure IoT Edge in a container.

IoT Edge-GerätecontainerIoT Edge device container

Der IoT Edge-Gerätecontainer ist ein vollständiges IoT Edge-Gerät, das für den Start auf einem beliebigen Computer mit einer Containerengine bereit ist.The IoT Edge device container is a complete IoT Edge device, ready to be launched on any machine with a container engine. Der Gerätecontainer enthält die IoT Edge-Runtime und eine Containerengine.The device container includes the IoT Edge runtime and a container engine itself. Jede Instanz des Containers bildet dabei ein funktionell völlig eigenständiges IoT Edge-Gerät.Each instance of the container is a fully functional self-provisioning IoT Edge device. Der Gerätecontainer unterstützt das Remotedebuggen von Modulen, sofern es eine Netzwerkroute zu den Modulen gibt.The device container supports remote debugging of modules, as long as there is a network route to the module. Der Gerätecontainer eignet sich gut, um schnell eine große Anzahl von IoT Edge-Geräten zum Testen von bedarfsorientierten Szenarien oder Azure Pipelines zu erstellen.The device container is good for quickly creating large numbers of IoT Edge devices to test at-scale scenarios or Azure Pipelines. Er unterstützt darüber hinaus die Bereitstellung auf Kubernetes mithilfe von Helm.It also supports deployment to kubernetes via helm.

Weitere Informationen finden Sie unter Azure IoT Edge-Gerätecontainer.For more information, see Azure IoT Edge device container.

DevOps-ToolsDevOps tools

Wenn Sie für die Entwicklung von Lösungen in großem Maßstab für umfangreiche Produktionsszenarien bereit sind, nutzen Sie moderne DevOps-Prinzipien, einschließlich Automation, Überwachung und optimierten Softwareentwicklungsprozessen.When you're ready to develop at-scale solutions for extensive production scenarios, take advantage of modern DevOps principles including automation, monitoring, and streamlined software engineering processes. IoT Edge verfügt über Erweiterungen, die DevOps-Tools unterstützen, darunter Azure DevOps, Azure DevOps Projects und Jenkins.IoT Edge has extensions to support DevOps tools including Azure DevOps, Azure DevOps Projects, and Jenkins. Wenn Sie eine vorhandene Pipeline anpassen oder ein anderes DevOps-Tool, wie CircleCI oder TravisCI verwenden möchten, ist das mit den im IoT Edge Dev Tool integrierten Befehlszeilenfunktionen möglich.If you want to customize an existing pipeline or use a different DevOps tool like CircleCI or TravisCI, you can do so with the CLI features included in the IoT Edge dev tool.

Weitere Informationen, Anleitungen und Beispiele finden Sie auf den folgenden Seiten:For more information, guidance, and examples, see the following pages: