Geliştirme ve test ortamınızı IoT Edge için hazırlamaPrepare your development and test environment for IoT Edge

Azure IoT Edge, mevcut iş mantığınızı kenarda çalışan cihazlara kaydırır.Azure IoT Edge moves your existing business logic to devices operating at the edge. Uygulamalarınızı ve iş yüklerinizi IoT Edge modüllerolarak çalışacak şekilde hazırlamak için, bunları kapsayıcı olarak oluşturmanız gerekir.To prepare your applications and workloads to run as IoT Edge modules, you need to build them as containers. Bu makalede, bir IoT Edge çözümünü başarıyla oluşturabilmeniz için geliştirme ortamınızı yapılandırma konusunda rehberlik sunulmaktadır.This article provides guidance around how to configure your development environment so that you can successfully create an IoT Edge solution. Geliştirme ortamınızı ayarladıktan sonra, kendi IoT Edge modüllerinizi geliştirmeyiöğrenebilirsiniz.Once you have your development environment set up, then you can learn how to Develop your own IoT Edge modules.

Herhangi bir IoT Edge çözümünde göz önünde bulundurmanız gereken en az iki makine vardır.In any IoT Edge solution, there are at least two machines to consider. Bunlardan biri, IoT Edge modülünü çalıştıran IoT Edge cihazdır (veya cihazlardır).One is the IoT Edge device (or devices) itself, which runs the IoT Edge module. Diğeri, modülleri derlemek, test etmek ve dağıtmak için kullandığınız geliştirme makinedir.The other is the development machine that you use to build, test, and deploy modules. Bu makale öncelikle geliştirme makinesine odaklanır.This article focuses primarily on the development machine. Test amacıyla, iki makine aynı olabilir.For testing purposes, the two machines can be the same. Geliştirme makinenizde IoT Edge çalıştırabilir ve buna modüller dağıtabilirsiniz.You can run IoT Edge on your development machine and deploy modules to it.

İşletim sistemiOperating system

Azure IoT Edge, belirli bir desteklenen işletim sistemlerikümesi üzerinde çalışır.Azure IoT Edge runs on a specific set of supported operating systems. IoT Edge için geliştirme için, bir kapsayıcı altyapısını çalıştıratabilen çoğu işletim sistemini kullanabilirsiniz.For developing for IoT Edge, you can use most operating systems that can run a container engine. Kapsayıcı altyapısı, modüllerinizi kapsayıcılar olarak derlemek ve bir kapsayıcı kayıt defterine göndermek için geliştirme makinesinde bir gereksinimdir.The container engine is a requirement on the development machine to build your modules as containers and push them to a container registry.

Geliştirme makineniz Azure IoT Edge çalıştıramadığından, yerel olarak test etmenize ve hata ayıklamanıza yardımcı olan test araçları hakkında bilgi edinmek için bu makaleye devam edin.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.

Geliştirme makinenizin işletim sisteminin IoT Edge cihazınızın işletim sistemiyle eşleşmesi gerekmez.The operating system of your development machine doesn't have to match the operating system of your IoT Edge device. Ancak, kapsayıcı işletim sisteminin, geliştirme makinesi ile IoT Edge cihaz arasında tutarlı olması gerekir.However, the container operating system must be consistent between development machine and IoT Edge device. Örneğin, bir Windows makinesinde modüller geliştirebilir ve bunları bir Linux cihazına dağıtabilirsiniz.For example, you can develop modules on a Windows machine and deploy them to a Linux device. Linux cihazının modüllerini derlemek için Windows makinenin Linux kapsayıcıları çalıştırması gerekir.The Windows machine needs to run Linux containers to build the modules for the Linux device.

Kapsayıcı altyapısıContainer engine

IoT Edge merkezi kavramı, iş ve bulut mantığınızı kapsayıcılara paketleyerek cihazlara uzaktan dağıtmanıza olanak sağlar.The central concept of IoT Edge is that you can remotely deploy your business and cloud logic to devices by packaging it into containers. Kapsayıcılar oluşturmak için geliştirme makinenizde bir kapsayıcı altyapısına ihtiyacınız vardır.To build containers, you need a container engine on your development machine.

Üretimde IoT Edge cihazları için desteklenen tek kapsayıcı altyapısı, Moby ' dir.The only supported container engine for IoT Edge devices in production is Moby. Ancak, Docker gibi açık kapsayıcı girişimi ile uyumlu olan herhangi bir kapsayıcı altyapısı, IoT Edge modül görüntüleri oluşturma özelliğine sahiptir.However, any container engine compatible with the Open Container Initiative, like Docker, is capable of building IoT Edge module images.

Geliştirme araçlarıDevelopment tools

Hem Visual Studio hem de Visual Studio Code, IoT Edge çözümleri geliştirmeye yardımcı olmak için eklenti uzantılarına sahiptir.Both Visual Studio and Visual Studio Code have add-on extensions to help develop IoT Edge solutions. Bu uzantılar yeni IoT Edge senaryoları oluşturmaya ve dağıtmaya yardımcı olacak dile özgü şablonlar sağlar.These extensions provide language-specific templates to help create and deploy new IoT Edge scenarios. Visual Studio için Azure IoT Edge uzantıları ve Visual Studio Code IoT Edge çözümlerinizi kodlemenize, oluşturmanıza, dağıtmanıza ve hata ayıklamanıza yardımcı olur.The Azure IoT Edge extensions for Visual Studio and Visual Studio Code help you code, build, deploy, and debug your IoT Edge solutions. Birden çok modül içeren bir IoT Edge çözümünün tamamını oluşturabilirsiniz ve uzantılar her yeni modül eklemesi ile bir dağıtım bildirimi şablonunu otomatik olarak güncelleştirir.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. Uzantılar ile, IoT cihazlarınızı Visual Studio veya Visual Studio Code içinden de yönetebilirsiniz.With the extensions, you can also manage your IoT devices from within Visual Studio or Visual Studio Code. Bir cihaza modül dağıtın, durumu izleyin ve iletileri IoT Hub geldikçe görüntüleyin.Deploy modules to a device, monitor the status, and view messages as they arrive at IoT Hub. Her iki uzantı de, geliştirme makinenizde yerel olarak çalışan ve modülleri hata ayıklamanın yanı sıra IoT EdgeHub geliştirme aracı 'nı kullanır.Both extensions use the IoT EdgeHub dev tool to enable local running and debugging of modules on your development machine as well.

Başka düzenleyicilerle veya CLı ile geliştirmeyi tercih ediyorsanız, Azure IoT Edge dev aracı komut satırından geliştirme ve test yapabilmeniz için komutlar sağlar.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. Yeni IoT Edge senaryolar oluşturabilir, modül görüntüleri oluşturabilir, modülleri benzeticide çalıştırabilir ve IoT Hub gönderilen iletileri izleyebilirsiniz.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 uzantısıVisual Studio Code extension

Visual Studio Code için Azure IoT Edge uzantısı, C# ' deki Azure işlevleri ile C, C#, Java, Node.js ve Python gibi programlama dillerinde oluşturulan IoT Edge modül şablonları sağlar.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#.

Daha fazla bilgi ve indirme için bkz. Visual Studio Code Için Azure IoT araçları.For more information and to download, see Azure IoT Tools for Visual Studio Code.

IoT Edge uzantılarına ek olarak, geliştirme için ek uzantılar yüklemeyi yararlı bulabilirsiniz.In addition to the IoT Edge extensions, you may find it helpful to install additional extensions for developing. Örneğin, görüntülerinizi, Kapsayıcılarınızı ve kayıt defterlerini yönetmek için Visual Studio Code Docker desteğini kullanabilirsiniz.For example, you can use Docker Support for Visual Studio Code to manage your images, containers, and registries. Ayrıca, tüm başlıca desteklenen dillerin, modüller geliştirirken yardımcı olabilecek Visual Studio Code uzantıları vardır.Additionally, all the major supported languages have extensions for Visual Studio Code that can help when you're developing modules.

ÖnkoşullarPrerequisites

Bazı diller ve hizmetlerde modül şablonlarının, Visual Studio Code ile geliştirme makinenizde proje klasörlerini oluşturmak için gereken önkoşulları vardır.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.

Modül şablonuModule template ÖnkoşulPrerequisite
Azure İşlevleriAzure 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 uzantısıVisual Studio 2017/2019 extension

Visual Studio için Azure IoT Edge araçları, C# ve C üzerinde oluşturulmuş bir IoT Edge modül şablonu sağlar.The Azure IoT Edge tools for Visual Studio provide an IoT Edge module template built on C# and C.

Daha fazla bilgi ve indirme için bkz. Visual studio 2017 için Azure IoT Edge araçları veya Visual studio 2019 için Azure IoT Edge araçları.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 geliştirme aracıIoT Edge dev tool

Azure IoT Edge dev aracı, komut satırı becerileri ile IoT Edge geliştirmeyi basitleştirir.The Azure IoT Edge dev tool simplifies IoT Edge development with command-line abilities. Bu araç, modülleri geliştirmek, hatalarını ayıklamak ve test etmek için CLı komutları sağlar.This tool provides CLI commands to develop, debug, and test modules. IoT Edge dev aracı, bağımlılıkları makinenize el ile yüklemişseniz veya IoT Edge dev kapsayıcısını kullanarak geliştirme sisteminizle birlikte çalışmaktadır.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.

Daha fazla bilgi ve kullanmaya başlamak için bkz. IoT Edge geliştirme aracı wiki.For more information and to get started, see IoT Edge dev tool wiki.

Test araçlarıTesting tools

IoT Edge cihazlarının veya hata ayıklama modüllerinin daha verimli benzetimini yapmanıza yardımcı olmak için çeşitli test araçları mevcuttur.Several testing tools exist to help you simulate IoT Edge devices or debug modules more efficiently. Aşağıdaki tabloda, araçlar arasındaki üst düzey bir karşılaştırma ve sonra ayrı bölümler her bir aracı daha özel olarak açıklanmaktadır.The following table shows a high-level comparison between the tools, and then individual sections describe each tool more specifically.

Üretim dağıtımları için yalnızca IoT Edge çalışma zamanı desteklenir, ancak aşağıdaki araçlar geliştirme ve test amaçları için IoT Edge cihazları benzetim yapmanıza veya kolayca oluşturmanıza olanak tanır.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. Bu araçlar birbirini dışlanmamış, ancak tamamen bir geliştirme deneyimi için birlikte çalışabilir.These tools aren't mutually exclusive, but can work together for a complete development experience.

AraçTool Olarak da bilinenAlso known as Desteklenen platformlarSupported platforms En iyi kullanım alanı:Best for
IoT EdgeHub geliştirme aracıIoT EdgeHub dev tool iotedgehubdeviotedgehubdev Windows, Linux, macOSWindows, Linux, macOS Modül hatalarını ayıklamak için bir cihazın benzetimini yapın.Simulating a device to debug modules.
IoT Edge dev kapsayıcısıIoT Edge dev container ıotedgedeviotedgedev Windows, Linux, macOSWindows, Linux, macOS Bağımlılıkları yüklemeden geliştirme.Developing without installing dependencies.
Bir kapsayıcıda IoT Edge çalışma zamanıIoT Edge runtime in a container iotedgeciotedgec Windows, Linux, macOS, ARMWindows, Linux, macOS, ARM Çalışma zamanını destekleyemeyebilir bir cihazda test etme.Testing on a device that may not support the runtime.
IoT Edge cihaz kapsayıcısıIoT Edge device container toolboc/Azure-IoT-Edge-cihaz-kapsayıcıtoolboc/azure-iot-edge-device-container Windows, Linux, macOS, ARMWindows, Linux, macOS, ARM Çok sayıda IoT Edge cihazı olan bir senaryoyu ölçeklendirerek test etme.Testing a scenario with many IoT Edge devices at scale.

IoT EdgeHub geliştirme aracıIoT EdgeHub dev tool

Azure IoT EdgeHub geliştirme aracı, yerel bir geliştirme ve hata ayıklama deneyimi sağlar.The Azure IoT EdgeHub dev tool provides a local development and debug experience. Araç, IoT Edge modülleri ve çözümleri yerel olarak oluşturabilmek, geliştirmek, test etmek, çalıştırmak ve hatalarını ayıklamak için IoT Edge çalışma zamanı olmadan IoT Edge modüllerle çalışmaya yardımcı olur.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. Bir kapsayıcı kayıt defterine görüntü göndermeniz ve bunları test için bir cihaza dağıtmanız gerekmez.You don't have to push images to a container registry and deploy them to a device for testing.

IoT EdgeHub geliştirme aracı, Visual Studio ve Visual Studio Code uzantıları ile birlikte çalışmak üzere tasarlanmıştır ve IoT Edge geliştirme aracıdır.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. İç döngü geliştirmeyi ve dış döngü sınamasını destekler, bu nedenle DevOps araçlarıyla de tümleştirilir.It supports inner loop development as well as outer loop testing, so integrates with the DevOps tools too.

Daha fazla bilgi ve yüklemek için bkz. Azure IoT EdgeHub geliştirme aracı.For more information and to install, see Azure IoT EdgeHub dev tool.

IoT Edge dev kapsayıcısıIoT Edge dev container

Azure IoT Edge dev kapsayıcısı, IoT Edge geliştirme için ihtiyaç duyduğunuz tüm bağımlılıklara sahip bir Docker kapsayıcısıdır.The Azure IoT Edge dev container is a Docker container that has all the dependencies that you need for IoT Edge development. Bu kapsayıcı C#, Python, Node.js ve Java dahil olmak üzere, içinde geliştirme yapmak istediğiniz dili kullanmaya başlamanızı kolaylaştırır.This container makes it easy to get started with whichever language you want to develop in, including C#, Python, Node.js, and Java. Yüklemeniz gereken tek şey, kapsayıcıyı geliştirme makinenize çekmek için Docker veya Moby gibi bir kapsayıcı altyapısıdır.All you need to install is a container engine, like Docker or Moby, to pull the container to your development machine.

Daha fazla bilgi için bkz. Azure IoT Edge geliştirme kapsayıcısı.For more information, see Azure IoT Edge dev container.

Bir kapsayıcıda IoT Edge çalışma zamanıIoT Edge runtime in a container

Bir kapsayıcıdaki IoT Edge çalışma zamanı, cihaz Bağlantı dizenizi ortam değişkeni olarak alan bir çalışma zamanı sağlar.The IoT Edge runtime in a container provides a complete runtime that takes your device connection string as an environment variable. Bu kapsayıcı, macOS gibi yerel çalışma zamanını desteklemeyen bir sistemde IoT Edge modülleri ve senaryoları test etmenizi sağlar.This container enables you to test IoT Edge modules and scenarios on a system that may not support the runtime natively, like macOS. Dağıttığınız tüm modüller çalışma zamanı kapsayıcısının dışında başlatılır.Any modules that you deploy will be started outside of the runtime container. Çalışma zamanının ve dağıtılan modüllerin aynı kapsayıcı içinde mevcut olmasını istiyorsanız bunun yerine IoT Edge cihaz kapsayıcısını göz önünde bulundurun.If you want the runtime and any deployed modules to exist within the same container, consider the IoT Edge device container instead.

Daha fazla bilgi için bkz. Azure IoT Edge bir kapsayıcıda çalıştırma.For more information, see Running Azure IoT Edge in a container.

IoT Edge cihaz kapsayıcısıIoT Edge device container

IoT Edge cihaz kapsayıcısı, kapsayıcı altyapısı olan herhangi bir makinede başlatılmaya hazırlı bir IoT Edge cihazdır.The IoT Edge device container is a complete IoT Edge device, ready to be launched on any machine with a container engine. Cihaz kapsayıcısı, IoT Edge çalışma zamanı ve kapsayıcı altyapısının kendisini içerir.The device container includes the IoT Edge runtime and a container engine itself. Kapsayıcının her örneği, tamamen işlevsel bir kendi kendine sağlama IoT Edge cihazındır.Each instance of the container is a fully functional self-provisioning IoT Edge device. Modül için bir ağ yolu olduğu sürece, cihaz kapsayıcısı modüllerin uzaktan hata ayıklamasını destekler.The device container supports remote debugging of modules, as long as there is a network route to the module. Cihaz kapsayıcısı, ölçeklendirmekte olan senaryoları veya Azure Pipelines sınamak için çok sayıda IoT Edge cihazı hızlı bir şekilde oluşturmak için uygundur.The device container is good for quickly creating large numbers of IoT Edge devices to test at-scale scenarios or Azure Pipelines. Ayrıca, Held aracılığıyla Kubernetes 'e dağıtımı da destekler.It also supports deployment to kubernetes via helm.

Daha fazla bilgi için bkz. cihaz kapsayıcısı Azure IoT Edge.For more information, see Azure IoT Edge device container.

DevOps araçlarıDevOps tools

Kapsamlı üretim senaryolarında ölçekli çözümler geliştirmeye hazırsanız, otomasyon, izleme ve kolaylaştırılmış Yazılım Mühendisliği işlemleri dahil modern DevOps ilkelerine yararlanın.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, Azure DevOps, Azure DevOps Projeleri ve Jenkins gibi DevOps araçlarını destekleyecek uzantılara sahiptir.IoT Edge has extensions to support DevOps tools including Azure DevOps, Azure DevOps Projects, and Jenkins. Mevcut bir işlem hattını özelleştirmek veya Circlecı ya da Traviscı gibi farklı bir DevOps aracı kullanmak istiyorsanız, IoT Edge dev aracında bulunan CLı özellikleriyle bunu yapabilirsiniz.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.

Daha fazla bilgi, kılavuz ve örnekler için aşağıdaki sayfalara bakın:For more information, guidance, and examples, see the following pages: