Förbered din utvecklings- och testmiljö för IoT EdgePrepare your development and test environment for IoT Edge

Azure IoT Edge flyttar din befintliga affärslogik till enheter som arbetar på gränsen.Azure IoT Edge moves your existing business logic to devices operating at the edge. Om du vill förbereda dina program och arbetsbelastningar så att de körs som IoT Edge-modulermåste du skapa dem som behållare.To prepare your applications and workloads to run as IoT Edge modules, you need to build them as containers. Den här artikeln innehåller vägledning om hur du konfigurerar utvecklingsmiljön så att du kan skapa en IoT Edge-lösning.This article provides guidance around how to configure your development environment so that you can successfully create an IoT Edge solution. När du har konfigurerat din utvecklingsmiljö kan du lära dig att utveckla dina egna IoT Edge-moduler.Once you have your development environment set up, then you can learn how to Develop your own IoT Edge modules.

I alla IoT Edge-lösningar finns det minst två maskiner att tänka på.In any IoT Edge solution, there are at least two machines to consider. En är IoT Edge-enheten (eller enheterna) själv, som kör IoT Edge-modulen.One is the IoT Edge device (or devices) itself, which runs the IoT Edge module. Den andra är den utvecklingsdator som du använder för att skapa, testa och distribuera moduler.The other is the development machine that you use to build, test, and deploy modules. Denna artikel fokuserar främst på utvecklingsmaskinen.This article focuses primarily on the development machine. För teständamål kan de två maskinerna vara desamma.For testing purposes, the two machines can be the same. Du kan köra IoT Edge på utvecklingsdatorn och distribuera moduler till den.You can run IoT Edge on your development machine and deploy modules to it.

OperativsystemOperating system

Azure IoT Edge körs på en specifik uppsättning operativsystem som stöds.Azure IoT Edge runs on a specific set of supported operating systems. För utveckling för IoT Edge kan du använda de flesta operativsystem som kan köra en behållarmotor.For developing for IoT Edge, you can use most operating systems that can run a container engine. Behållarmotorn är ett krav på utvecklingsmaskinen att bygga dina moduler som behållare och skicka dem till ett behållarregister.The container engine is a requirement on the development machine to build your modules as containers and push them to a container registry.

Om din utvecklingsdatur inte kan köra Azure IoT Edge fortsätter du i den här artikeln om hur du kan testa testverktyg som hjälper dig att testa och felsöka lokalt.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.

Operativsystemet på utvecklingsmaskinen behöver inte matcha operativsystemet på din IoT Edge-enhet.The operating system of your development machine doesn't have to match the operating system of your IoT Edge device. Behållaroperativsystemet måste dock vara konsekvent mellan utvecklingsmaskinen och IoT Edge-enheten.However, the container operating system must be consistent between development machine and IoT Edge device. Du kan till exempel utveckla moduler på en Windows-dator och distribuera dem till en Linux-enhet.For example, you can develop modules on a Windows machine and deploy them to a Linux device. Windows-datorn måste köra Linux-behållare för att bygga modulerna för Linux-enheten.The Windows machine needs to run Linux containers to build the modules for the Linux device.

ContainermotorContainer engine

Det centrala konceptet med IoT Edge är att du kan fjärrstyra din affärs- och molnlogik till enheter genom att paketera den i behållare.The central concept of IoT Edge is that you can remotely deploy your business and cloud logic to devices by packaging it into containers. För att bygga behållare behöver du en behållarmotor på din utvecklingsmaskin.To build containers, you need a container engine on your development machine.

Den enda containermotor som stöds för IoT Edge-enheter i produktion är Moby.The only supported container engine for IoT Edge devices in production is Moby. Alla behållarmotorer som är kompatibla med Open Container Initiative, som Docker, kan dock skapa IoT Edge-modulavbildningar.However, any container engine compatible with the Open Container Initiative, like Docker, is capable of building IoT Edge module images.

UtvecklingsverktygDevelopment tools

Både Visual Studio och Visual Studio Code har tillägg för att utveckla IoT Edge-lösningar.Both Visual Studio and Visual Studio Code have add-on extensions to help develop IoT Edge solutions. Dessa tillägg innehåller språkspecifika mallar som hjälper dig att skapa och distribuera nya IoT Edge-scenarier.These extensions provide language-specific templates to help create and deploy new IoT Edge scenarios. Azure IoT Edge-tilläggen för Visual Studio och Visual Studio-kod hjälper dig att koda, skapa, distribuera och felsöka dina IoT Edge-lösningar.The Azure IoT Edge extensions for Visual Studio and Visual Studio Code help you code, build, deploy, and debug your IoT Edge solutions. Du kan skapa en hel IoT Edge-lösning som innehåller flera moduler och tilläggen uppdaterar automatiskt en distributionsmanifestmall med varje nytt modultillägg.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. Med tilläggen kan du även hantera dina IoT-enheter inifrån Visual Studio eller Visual Studio Code.With the extensions, you can also manage your IoT devices from within Visual Studio or Visual Studio Code. Distribuera moduler till en enhet, övervaka status och visa meddelanden när de anländer till IoT Hub.Deploy modules to a device, monitor the status, and view messages as they arrive at IoT Hub. Båda tilläggen använder IoT EdgeHub-utvecklingsverktyget för att aktivera lokal körning och felsökning av moduler på utvecklingsmaskinen.Both extensions use the IoT EdgeHub dev tool to enable local running and debugging of modules on your development machine as well.

Om du föredrar att utveckla med andra redigerare eller från CLI, azure IoT Edge dev-verktyget ger kommandon så att du kan utveckla och testa från kommandoraden.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. Du kan skapa nya IoT Edge-scenarier, skapa modulavbildningar, köra moduler i en simulator och övervaka meddelanden som skickas till IoT Hub.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-tilläggVisual Studio Code extension

Azure IoT Edge-tillägget för Visual Studio-kod tillhandahåller IoT Edge-modulmallar som bygger på programmeringsspråk, inklusive C, C#, Java, Node.js och Python samt Azure-funktioner i 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#.

Mer information och hämtning finns i Azure IoT Tools for Visual Studio Code.For more information and to download, see Azure IoT Tools for Visual Studio Code.

Förutom IoT Edge-tilläggen kan det vara bra att installera ytterligare tillägg för utveckling.In addition to the IoT Edge extensions, you may find it helpful to install additional extensions for developing. Du kan till exempel använda Docker-stöd för Visual Studio-kod för att hantera bilder, behållare och register.For example, you can use Docker Support for Visual Studio Code to manage your images, containers, and registries. Dessutom har alla de större språk som stöds tillägg för Visual Studio-kod som kan hjälpa när du utvecklar moduler.Additionally, all the major supported languages have extensions for Visual Studio Code that can help when you're developing modules.

KravPrerequisites

Modulmallarna för vissa språk och tjänster har förutsättningar som krävs för att skapa projektmapparna på utvecklingsmaskinen med Visual Studio Code.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.

ModulmallModule template KravPrerequisite
Azure FunctionsAzure Functions .NET Core 2.1 SDK.NET Core 2.1 SDK
CC GitGit
C#C# .NET Core 2.1 SDK.NET Core 2.1 SDK
JavaJava
Node.jsNode.js
PythonPython

Visual Studio 2017/2019 förlängningVisual Studio 2017/2019 extension

Azure IoT Edge-verktygen för Visual Studio tillhandahåller en IoT Edge-modulmall som är byggd på C# och C.The Azure IoT Edge tools for Visual Studio provide an IoT Edge module template built on C# and C.

Mer information och hämtning finns i Azure IoT Edge Tools för Visual Studio 2017 eller 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-utvecklingsverktygetIoT Edge dev tool

Utvecklingsverktyget för Azure IoT Edge förenklar IoT Edge-utvecklingen med kommandoradsförmågor.The Azure IoT Edge dev tool simplifies IoT Edge development with command-line abilities. Det här verktyget tillhandahåller CLI-kommandon för att utveckla, felsöka och testa moduler.This tool provides CLI commands to develop, debug, and test modules. IoT Edge-utvecklingsverktyget fungerar med utvecklingssystemet, oavsett om du har installerat beroendena på din dator manuellt eller använder IoT Edge-utvecklingsbehållaren.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.

Mer information och kom igång finns i IoT Edge dev tool wiki.For more information and to get started, see IoT Edge dev tool wiki.

TestverktygTesting tools

Det finns flera testverktyg som hjälper dig att simulera IoT Edge-enheter eller felsökningsmoduler mer effektivt.Several testing tools exist to help you simulate IoT Edge devices or debug modules more efficiently. I följande tabell visas en jämförelse på hög nivå mellan verktygen och sedan beskrivs varje verktyg mer specifikt i enskilda avsnitt.The following table shows a high-level comparison between the tools, and then individual sections describe each tool more specifically.

Endast IoT Edge-körningen stöds för produktionsdistributioner, men med följande verktyg kan du simulera eller enkelt skapa IoT Edge-enheter för utvecklings- och testningsändamål.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. Dessa verktyg utesluter inte varandra, men kan arbeta tillsammans för en komplett utvecklingsupplevelse.These tools aren't mutually exclusive, but can work together for a complete development experience.

VerktygTool Även känd somAlso known as Plattformar som stödsSupported platforms Bäst förBest for
Utvecklingsverktyget för IoT EdgeHubIoT EdgeHub dev tool iotedgehubdeviotedgehubdev Windows, Linux, MacOSWindows, Linux, MacOS Simulerar en enhet för felsökning av moduler.Simulating a device to debug modules.
IoT Edge-utvecklingsbehållareIoT Edge dev container microsoft/iotedgedevmicrosoft/iotedgedev Windows, Linux, MacOSWindows, Linux, MacOS Utveckla utan att installera beroenden.Developing without installing dependencies.
IoT Edge-körning i en behållareIoT Edge runtime in a container iotedgec (iotedgec)iotedgec Windows, Linux, MacOS, ARMWindows, Linux, MacOS, ARM Testning på en enhet som kanske inte stöder körningen.Testing on a device that may not support the runtime.
Behållare för IoT Edge-enhetIoT Edge device container toolboc/azure-iot-edge-device-containertoolboc/azure-iot-edge-device-container Windows, Linux, MacOS, ARMWindows, Linux, MacOS, ARM Testa ett scenario med många IoT Edge-enheter i stor skala.Testing a scenario with many IoT Edge devices at scale.

Utvecklingsverktyget för IoT EdgeHubIoT EdgeHub dev tool

Utvecklingsverktyget för Azure IoT EdgeHub ger en lokal utvecklings- och felsökningsupplevelse.The Azure IoT EdgeHub dev tool provides a local development and debug experience. Verktyget hjälper till att starta IoT Edge-moduler utan IoT Edge-körningen så att du kan skapa, utveckla, testa, köra och felsöka IoT Edge-moduler och lösningar lokalt.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. Du behöver inte skicka avbildningar till ett behållarregister och distribuera dem till en enhet för testning.You don't have to push images to a container registry and deploy them to a device for testing.

IoT EdgeHub-utvecklingsverktyget har utformats för att fungera tillsammans med tilläggen för Visual Studio- och Visual Studio-kod, samt med IoT Edge-utvecklingsverktyget.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. Den stöder inre loop utveckling samt yttre loop testning, så integrerar med DevOps verktyg också.It supports inner loop development as well as outer loop testing, so integrates with the DevOps tools too.

Mer information och installation finns i Azure IoT EdgeHub-utvecklingsverktyg.For more information and to install, see Azure IoT EdgeHub dev tool.

IoT Edge-utvecklingsbehållareIoT Edge dev container

Azure IoT Edge dev-behållaren är en Docker-behållare som har alla beroenden som du behöver för IoT Edge-utveckling.The Azure IoT Edge dev container is a Docker container that has all the dependencies that you need for IoT Edge development. Den här behållaren gör det enkelt att komma igång med vilket språk du vill utveckla i, inklusive C#, Python, Node.js och Java.This container makes it easy to get started with whichever language you want to develop in, including C#, Python, Node.js, and Java. Allt du behöver installera är en containermotor, som Docker eller Moby, för att dra behållaren till din utvecklingsmaskin.All you need to install is a container engine, like Docker or Moby, to pull the container to your development machine.

Mer information finns i Azure IoT Edge dev-behållaren.For more information, see Azure IoT Edge dev container.

IoT Edge-körning i en behållareIoT Edge runtime in a container

IoT Edge-körningen i en behållare ger en fullständig körning som tar enhetens anslutningssträng som en miljövariabel.The IoT Edge runtime in a container provides a complete runtime that takes your device connection string as an environment variable. Med den här behållaren kan du testa IoT Edge-moduler och scenarier på ett system som kanske inte stöder körningen internt, till exempel MacOS.This container enables you to test IoT Edge modules and scenarios on a system that may not support the runtime natively, like MacOS. Alla moduler som du distribuerar startas utanför körningsbehållaren.Any modules that you deploy will be started outside of the runtime container. Om du vill att körningen och eventuella distribuerade moduler ska finnas i samma behållare bör du tänka på IoT Edge-enhetsbehållaren i stället.If you want the runtime and any deployed modules to exist within the same container, consider the IoT Edge device container instead.

Mer information finns i Köra Azure IoT Edge i en behållare.For more information, see Running Azure IoT Edge in a container.

Behållare för IoT Edge-enhetIoT Edge device container

IoT Edge-enhetsbehållaren är en komplett IoT Edge-enhet, redo att startas på alla maskiner med en behållarmotor.The IoT Edge device container is a complete IoT Edge device, ready to be launched on any machine with a container engine. Enhetsbehållaren innehåller IoT Edge-körningen och en behållarmotor själv.The device container includes the IoT Edge runtime and a container engine itself. Varje instans av behållaren är en fullt fungerande självetablering IoT Edge-enhet.Each instance of the container is a fully functional self-provisioning IoT Edge device. Enhetsbehållaren stöder fjärrfelsökning av moduler, så länge det finns en nätverksväg till modulen.The device container supports remote debugging of modules, as long as there is a network route to the module. Enhetsbehållaren är bra för att snabbt skapa ett stort antal IoT Edge-enheter för att testa storskaliga scenarier eller Azure Pipelines.The device container is good for quickly creating large numbers of IoT Edge devices to test at-scale scenarios or Azure Pipelines. Det stöder också distribution till kubernetes via rodret.It also supports deployment to kubernetes via helm.

Mer information finns i Azure IoT Edge-enhetsbehållare.For more information, see Azure IoT Edge device container.

DevOps-verktygDevOps tools

När du är redo att utveckla storskaliga lösningar för omfattande produktionsscenarier kan du dra nytta av moderna DevOps-principer, inklusive automatisering, övervakning och strömlinjeformade programvarutekniska processer.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 har tillägg för att stödja DevOps-verktyg, inklusive Azure DevOps, Azure DevOps-projekt och Jenkins.IoT Edge has extensions to support DevOps tools including Azure DevOps, Azure DevOps Projects, and Jenkins. Om du vill anpassa en befintlig pipeline eller använda ett annat DevOps-verktyg som CircleCI eller TravisCI kan du göra det med CLI-funktionerna som ingår i IoT Edge-utvecklingsverktyget.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.

Mer information, vägledning och exempel finns på följande sidor:For more information, guidance, and examples, see the following pages: