Öğretici: Linux kapsayıcılarıyla IoT Edge modülleri geliştirmeTutorial: Develop IoT Edge modules with Linux containers

Uygulama hedefi:  Evet simgesi IoT Edge 1,1  evet IoT Edge 1,2Applies to: yes icon IoT Edge 1.1 yes icon IoT Edge 1.2

IoT Edge çalıştıran cihazlara kod geliştirmek ve dağıtmak için Visual Studio Code kullanın.Use Visual Studio Code to develop and deploy code to devices running IoT Edge.

Hızlı başlangıçta bir IoT Edge cihaz oluşturdunuz ve Azure Marketi 'nden bir modül dağıttınız.In the quickstart, you created an IoT Edge device and deployed a module from the Azure Marketplace. Bu öğreticide, bir IoT Edge cihazına kendi kodunuzu geliştirme ve dağıtma işlemi adım adım açıklanmaktadır.This tutorial walks through developing and deploying your own code to an IoT Edge device. Bu makale, belirli programlama dilleri veya Azure hizmetleri hakkında daha ayrıntılı bilgi sağlayan diğer öğreticiler için kullanışlı bir önkoşuldur.This article is a useful prerequisite for the other tutorials, which go into more detail about specific programming languages or Azure services.

Bu öğretici, bir Linux cihazına C# modülünü dağıtma örneğini kullanır.This tutorial uses the example of deploying a C# module to a Linux device. Bu örnek, IoT Edge çözümleri için en yaygın geliştirici senaryosu olduğundan seçilmiştir.This example was chosen because it's the most common developer scenario for IoT Edge solutions. Farklı bir dil kullanmayı planlıyor veya bir Azure hizmeti dağıtsanız bile, bu öğretici geliştirme araçları ve kavramlar hakkında bilgi edinmek için hala yararlıdır.Even if you plan on using a different language or deploying an Azure service, this tutorial is still useful to learn about the development tools and concepts. Geliştirme sürecine bu girişi tamamladıktan sonra ayrıntıları incelemek için tercih ettiğiniz dili veya Azure hizmetini seçin.Complete this introduction to the development process, then choose your preferred language or Azure service to dive into the details.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:In this tutorial, you learn how to:

  • Geliştirme makinenizi ayarlayın.Set up your development machine.
  • Yeni bir proje oluşturmak için Visual Studio Code IoT Edge araçları kullanın.Use the IoT Edge tools for Visual Studio Code to create a new project.
  • Projenizi kapsayıcı olarak derleyin ve Azure Container Registry 'de saklayın.Build your project as a container and store it in an Azure container registry.
  • Kodunuzu bir IoT Edge cihazına dağıtın.Deploy your code to an IoT Edge device.

ÖnkoşullarPrerequisites

Geliştirme makinesi:A development machine:

  • Geliştirme tercihlerinize bağlı olarak kendi bilgisayarınızı veya bir sanal makineyi kullanabilirsiniz.You can use your own computer or a virtual machine, depending on your development preferences.
    • Geliştirme makinenizin iç içe sanallaştırmayı desteklediğinden emin olun.Make sure that your development machine supports nested virtualization. Bu özellik, bir sonraki bölümde yüklediğiniz bir kapsayıcı altyapısını çalıştırmak için gereklidir.This capability is necessary for running a container engine, which you install in the next section.
  • Bir kapsayıcı altyapısını çalıştırabilme ile ilgili çoğu işletim sistemi, Linux cihazları için IoT Edge modülleri geliştirmek üzere kullanılabilir.Most operating systems that can run a container engine can be used to develop IoT Edge modules for Linux devices. Bu öğretici bir Windows bilgisayarı kullanır, ancak macOS veya Linux üzerinde bilinen farklılıkları gösterir.This tutorial uses a Windows computer, but points out known differences on macOS or Linux.
  • Bu öğreticide daha sonra modül şablonu paketleri çekmek için Git'i yükler.Install Git, to pull module template packages later in this tutorial.
  • Visual Studio Code için C# (OmniSharp tarafından desteklenen) uzantısı.C# for Visual Studio Code (powered by OmniSharp) extension.
  • .NET Core 2.1 SDK'sı..NET Core 2.1 SDK.

Bir Azure IoT Edge cihazı:An Azure IoT Edge device:

  • Geliştirme makinenizde IoT Edge çalıştırmanızı öneririz, bunun yerine ayrı bir cihaz kullanın.We recommend that you don't run IoT Edge on your development machine, but instead use a separate device. Geliştirme makinesi ve IoT Edge cihaz arasındaki bu ayrım, doğru bir dağıtım senaryosunu daha doğru yansıtmıştır ve farklı kavramları düz tutmaya yardımcı olur.This distinction between development machine and IoT Edge device more accurately mirrors a true deployment scenario, and helps to keep the different concepts straight.
  • Kullanılabilir ikinci bir cihazınız yoksa, Azure 'da Linux sanal makinesiyleIoT Edge bir cihaz oluşturmak için hızlı başlangıç makalesini kullanın.If you don't have a second device available, use the quickstart article to create an IoT Edge device in Azure with a Linux virtual machine.

Bulut kaynakları:Cloud resources:

  • Azure 'da ücretsiz veya Standart katmanlı IoT Hub 'ı .A free or standard-tier IoT hub in Azure.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.If you don't have an Azure subscription, create a free account before you begin.

Önemli kavramlarKey concepts

Bu öğreticide IoT Edge modülünün geliştirilmesi gösterilmektedir.This tutorial walks through the development of an IoT Edge module. Bir IoT Edge modülü veya bazen yalnızca Short için bir Modül çalıştırılabilir kod içeren bir kapsayıcıdır.An IoT Edge module, or sometimes just module for short, is a container with executable code. Bir IoT Edge cihazına bir veya daha fazla modül dağıtabilirsiniz.You can deploy one or more modules to an IoT Edge device. Modüller sensörlerden veri almak, verileri temizlemek ve analiz etmek ya da bir IoT Hub 'ına ileti göndermek gibi belirli görevleri gerçekleştirir.Modules perform specific tasks like ingesting data from sensors, cleaning and analyzing data, or sending messages to an IoT hub. Daha fazla bilgi için bkz. Azure IoT Edge modüllerini anlama.For more information, see Understand Azure IoT Edge modules.

IoT Edge modüller geliştirirken, geliştirme makinesi ve modülün sonunda dağıtıldığı hedef IoT Edge cihaz arasındaki farkı anlamak önemlidir.When developing IoT Edge modules, it's important to understand the difference between the development machine and the target IoT Edge device where the module will eventually be deployed. Modül kodunuzu tutmak için oluşturduğunuz kapsayıcı, hedef cihazın işletim SISTEMI (OS) ile aynı olmalıdır.The container that you build to hold your module code must match the operating system (OS) of the target device. Örneğin, en yaygın senaryo, bir Windows bilgisayarda IoT Edge çalıştıran bir Linux cihazını hedefleyecek bir modül geliştiren kişidir.For example, the most common scenario is someone developing a module on a Windows computer intending to target a Linux device running IoT Edge. Bu durumda, kapsayıcı işletim sistemi Linux olur.In that case, the container operating system would be Linux. Bu öğreticiye giderek, geliştirme MAKINESI işletim sistemi ve kapsayıcı işletim sistemi arasındaki farkı aklınızda bulundurun.As you go through this tutorial, keep in mind the difference between the development machine OS and the container OS.

İpucu

Windows üzerinde Linux için IoT Edgekullanıyorsanız, senaryonuza ait hedef cihaz Windows ana bilgisayarı değil, Linux sanal makinedir.If you're using IoT Edge for Linux on Windows, then the target device in your scenario is the Linux virtual machine, not the Windows host.

Bu öğretici, Linux kapsayıcılarıyla IoT Edge çalıştıran cihazları hedefler.This tutorial targets devices running IoT Edge with Linux containers. Geliştirme makineniz Linux kapsayıcıları çalıştırdığı sürece tercih ettiğiniz işletim sistemini kullanabilirsiniz.You can use your preferred operating system as long as your development machine runs Linux containers. Bu öğreticinin kullanacağı, Linux kapsayıcılarıyla geliştirme için Visual Studio Code kullanmanızı öneririz.We recommend using Visual Studio Code to develop with Linux containers, so that's what this tutorial will use. Visual Studio 'Yu da kullanabilirsiniz, ancak iki araç arasındaki DESTEKDE farklılıklar vardır.You can use Visual Studio as well, although there are differences in support between the two tools.

Aşağıdaki tabloda Visual Studio Code ve Visual Studio 'da Linux kapsayıcıları için desteklenen geliştirme senaryoları listelenmektedir.The following table lists the supported development scenarios for Linux containers in Visual Studio Code and Visual Studio.

Visual Studio CodeVisual Studio Code Visual Studio 2017/2019Visual Studio 2017/2019
Linux cihaz mimarisiLinux device architecture Linux AMD64Linux AMD64
Linux ARM32Linux ARM32
Linux AMD64Linux AMD64
Linux ARM32Linux ARM32
Azure hizmetleriAzure services Azure İşlevleriAzure Functions
Azure Stream AnalyticsAzure Stream Analytics
Azure Machine LearningAzure Machine Learning
DillerLanguages CC
C#C#
JavaJava
Node.jsNode.js
PythonPython
CC
C#C#
Daha fazla bilgiMore information Visual Studio Code için Azure IoT EdgeAzure IoT Edge for Visual Studio Code Visual Studio 2017 için Azure IoT Edge araçlarıAzure IoT Edge Tools for Visual Studio 2017
Visual Studio 2019 için Azure IoT Edge araçlarıAzure IoT Edge Tools for Visual Studio 2019

Not

Linux ARM64 cihazları için destek genel önizlemedekullanılabilir.Support for Linux ARM64 devices is available in public preview. Daha fazla bilgi için bkz. Visual Studio Code IoT Edge modüllerini geliştirme ve hata ayıklama (Önizleme).For more information, see Develop and debug ARM64 IoT Edge modules in Visual Studio Code (preview).

Bu öğreticide Visual Studio Code için geliştirme adımları öğretilir.This tutorial teaches the development steps for Visual Studio Code. Visual Studio 'Yu kullanmayı tercih ediyorsanız, Azure IoT Edge için modülleri geliştirmek ve hatalarını ayıklamak Için Visual studio 2019 kullanmabölümündeki yönergelere bakın.If you would rather use Visual Studio, refer to the instructions in Use Visual Studio 2019 to develop and debug modules for Azure IoT Edge.

Kapsayıcı altyapısını yüklerInstall container engine

IoT Edge modüller kapsayıcı olarak paketlenir, bu nedenle bunları derlemek ve yönetmek için geliştirme makinenizde bir kapsayıcı altyapısına ihtiyacınız vardır.IoT Edge modules are packaged as containers, so you need a container engine on your development machine to build and manage them. Özellik desteği ve popülerliği nedeniyle Docker Desktop 'ı geliştirmeye önerilir.We recommend Docker Desktop for development because of its feature support and popularity. Windows üzerinde Docker Desktop, farklı türlerde IoT Edge cihazları için kolayca modül geliştirebilmeniz için Linux kapsayıcıları ve Windows kapsayıcıları arasında geçiş yapmanızı sağlar.Docker Desktop on Windows lets you switch between Linux containers and Windows containers so that you can easily develop modules for different types of IoT Edge devices.

Geliştirme makinenize yüklemek için Docker belgelerini kullanın:Use the Docker documentation to install on your development machine:

VS Code ve araçları ayarlamaSet up VS Code and tools

IoT Edge modülleri geliştirmek için Visual Studio Code için IoT uzantıları 'nı kullanın.Use the IoT extensions for Visual Studio Code to develop IoT Edge modules. Bu uzantılar proje şablonları sağlar, dağıtım bildiriminin oluşturulmasını otomatik hale getirir ve IoT Edge cihazları izlemenize ve yönetmenize olanak tanır.These extensions provide project templates, automate the creation of the deployment manifest, and allow you to monitor and manage IoT Edge devices. Bu bölümde Visual Studio Code ve IoT uzantısını yükleyip Visual Studio Code içinden IoT Hub kaynaklarını yönetmek üzere Azure hesabınızı ayarlarsınız.In this section, you install Visual Studio Code and the IoT extension, then set up your Azure account to manage IoT Hub resources from within Visual Studio Code.

  1. Geliştirme makinenize Visual Studio Code 'yi yükler.Install Visual Studio Code on your development machine.

  2. Yükleme tamamlandıktan sonra uzantıları görüntüle' yi seçin > .Once the installation is finished, select View > Extensions.

  3. Aslında IoT Hub ve IoT cihazlarıyla etkileşime başlamanıza yardımcı olan ve IoT Edge modülleri geliştiren bir uzantı koleksiyonu olan Azure IoT araçları' nı arayın.Search for Azure IoT Tools, which is actually a collection of extensions that help you interact with IoT Hub and IoT devices, as well as developing IoT Edge modules.

  4. Yükle'yi seçin.Select Install. Dahil edilen her uzantı tek tek yüklenir.Each included extension installs individually.

  5. Uzantılar yükleme tamamlandığında, komut paletini görüntüle' yi seçerek komut paleti ' ni açın > .When the extensions are done installing, open the command palette by selecting View > Command Palette.

  6. Komut paletinde Azure: oturum aç' ı arayıp seçin.In the command palette, search for and select Azure: Sign in. Azure hesabınızda oturum açmak için yönergeleri izleyin.Follow the prompts to sign in to your Azure account.

  7. Komut paletinde, Azure IoT Hub arayıp seçin: IoT Hub ' i seçin.In the command palette again, search for and select Azure IoT Hub: Select IoT Hub. Azure aboneliğinizi ve IoT Hub 'ınızı seçmek için istemleri izleyin.Follow the prompts to select your Azure subscription and IoT hub.

  8. Sol taraftaki etkinlik çubuğundaki simgeyi seçerek veya Görünüm Gezgini ' ni seçerek Visual Studio Code gezgin bölümünü açın > .Open the explorer section of Visual Studio Code by either selecting the icon in the activity bar on the left, or by selecting View > Explorer.

  9. Gezgin bölümünün en altında, daraltılan Azure IoT Hub/cihazları menüsünü genişletin.At the bottom of the explorer section, expand the collapsed Azure IoT Hub / Devices menu. Komut paleti aracılığıyla seçtiğiniz IoT Hub 'ı ile ilişkili cihazları ve IoT Edge cihazları görmeniz gerekir.You should see the devices and IoT Edge devices associated with the IoT hub that you selected through the command palette.

    IoT Hub 'ınızdaki cihazları görüntüleme

Kapsayıcı kayıt defteri oluşturmaCreate a container registry

Bu öğreticide, Azure IoT araçları uzantısını kullanarak bir modül oluşturup dosyalardan bir kapsayıcı görüntüsü oluşturursunuz.In this tutorial, you use the Azure IoT Tools extension to build a module and create a container image from the files. Ardından bu görüntüyü, görüntülerinizin depolandığı ve yönetildiği kayıt defterine gönderirsiniz.Then you push this image to a registry that stores and manages your images. Son olarak, görüntünüzü IoT Edge cihazınızda çalıştırmak üzere kayıt defterinizden dağıtırsınız.Finally, you deploy your image from your registry to run on your IoT Edge device.

Kapsayıcı görüntülerinizi tutmak için Docker ile uyumlu herhangi bir kayıt defteri kullanabilirsiniz.You can use any Docker-compatible registry to hold your container images. İki popüler Docker kayıt defteri hizmeti Azure Container Registry ve Docker Hub.Two popular Docker registry services are Azure Container Registry and Docker Hub. Bu öğreticide Azure Container Registry kullanılır.This tutorial uses Azure Container Registry.

Zaten bir kapsayıcı kayıt defteriniz yoksa, Azure 'da yeni bir tane oluşturmak için aşağıdaki adımları izleyin:If you don't already have a container registry, follow these steps to create a new one in Azure:

  1. Azure portalında, Kaynak oluştur > Kapsayıcılar > Container Registry'yi seçin.In the Azure portal, select Create a resource > Containers > Container Registry.

  2. Kapsayıcı kayıt defterinizi oluşturmak için aşağıdaki değerleri girin:Provide the following values to create your container registry:

    AlanField DeğerValue
    AbonelikSubscription Açılan listeden bir abonelik seçin.Select a subscription from the drop-down list.
    Kaynak grubuResource group IoT Edge hızlı başlangıçlarında ve öğreticilerinde oluşturduğunuz tüm test kaynakları için aynı kaynak grubunu kullanmanızı öneririz.We recommend that you use the same resource group for all of the test resources that you create during the IoT Edge quickstarts and tutorials. Örneğin, IoTEdgeResources.For example, IoTEdgeResources.
    Kayıt defteri adıRegistry name Benzersiz bir ad girin.Provide a unique name.
    KonumLocation Size yakın bir konum seçin.Choose a location close to you.
    SKUSKU Temel'i seçin.Select Basic.
  3. Oluştur’u seçin.Select Create.

  4. Kapsayıcı kayıt defteriniz oluşturulduktan sonra, bu dosyaya gidin ve sol bölmeden Ayarlar' ın altında bulunan menüden erişim tuşları ' nı seçin.After your container registry is created, browse to it, and from the left pane select Access keys from the menu located under Settings.

  5. Yönetici kullanıcının kapsayıcı kayıt defteriniz için Kullanıcı adını ve parolayı görüntülemesini etkinleştirmek üzere tıklayın.Click to Enable Admin user to view the Username and Password for your container registry.

  6. Oturum açma sunucusu, Kullanıcı adı ve parola değerlerini kopyalayın ve uygun bir yere kaydedin.Copy the values for Login server, Username, and Password and save them somewhere convenient. Bu değerleri, kapsayıcı kayıt defterine erişim sağlamak için bu öğreticide kullanın.You use these values throughout this tutorial to provide access to the container registry.

    Kapsayıcı kayıt defteri için oturum açma sunucusu, Kullanıcı adı ve parola kopyalama

Yeni bir modül projesi oluşturCreate a new module project

Azure IoT araçları uzantısı, Visual Studio Code tüm desteklenen IoT Edge modülü dilleri için proje şablonları sağlar.The Azure IoT Tools extension provides project templates for all supported IoT Edge module languages in Visual Studio Code. Bu şablonlar, IoT Edge test etmek için çalışan bir modül dağıtmak için ihtiyacınız olan tüm dosya ve koda sahiptir veya şablonu kendi iş mantığınızla özelleştirmek için bir başlangıç noktası sağlar.These templates have all the files and code that you need to deploy a working module to test IoT Edge, or give you a starting point to customize the template with your own business logic.

Bu öğreticide, en sık kullanılan şablon olduğu için C# modül şablonunu kullanırız.For this tutorial, we use the C# module template because it is the most commonly used template.

Proje şablonu oluşturmaCreate a project template

Visual Studio Code komut paletinde arama yapın ve Azure IoT Edge: yeni IoT Edge çözüm' i seçin.In the Visual Studio Code command palette, search for and select Azure IoT Edge: New IoT Edge Solution. Çözümünüzü oluşturmak için istemleri izleyin ve aşağıdaki değerleri kullanın:Follow the prompts and use the following values to create your solution:

AlanField DeğerValue
Klasör seçinSelect folder Geliştirme makinenizde VS Code'un çözüm dosyalarını oluşturmak için kullanacağı konumu seçin.Choose the location on your development machine for VS Code to create the solution files.
Çözüm adı sağlayınProvide a solution name Çözümünüz için açıklayıcı bir ad girin veya varsayılan EdgeSolution kabul edin.Enter a descriptive name for your solution or accept the default EdgeSolution.
Modül şablonunu seçinSelect module template C# modülünü seçin.Choose C# Module.
Modül adı sağlayınProvide a module name Varsayılan sampleModule'ü kabul edin.Accept the default SampleModule.
Modül için Docker görüntü deposunu sağlamaProvide Docker image repository for the module Görüntü deposu, kapsayıcı kayıt defterinizin adını ve kapsayıcı görüntünüzün adını içerir.An image repository includes the name of your container registry and the name of your container image. Kapsayıcı resminiz, son adımda verdiğiniz adından önceden doldurulur.Your container image is prepopulated from the name you provided in the last step. Localhost: 5000 ' i Azure Container kayıt defterinizin oturum açma sunucusu değeriyle değiştirin.Replace localhost:5000 with the Login server value from your Azure container registry. Oturum açma sunucusu değerini, Azure portal kapsayıcı kayıt defterinizin genel bakış sayfasından alabilirsiniz.You can retrieve the Login server value from the Overview page of your container registry in the Azure portal.

Son görüntü deposu <registry name> . azurecr.io/sampleModule gibi görünüyor.The final image repository looks like <registry name>.azurecr.io/samplemodule.

Docker görüntü deposunu sağlama

Yeni çözümünüz Visual Studio Code penceresine yüklendikten sonra, oluşturduğu dosyaları öğrenmek için biraz zaman ayırın:Once your new solution loads in the Visual Studio Code window, take a moment to familiarize yourself with the files that it created:

  • . Vscode klasörü, modülleri hata ayıklama için kullanılan launch.json adlı bir dosya içerir.The .vscode folder contains a file called launch.json, which is used for debugging modules.

  • Modüller klasörü, çözümünüzdeki her modül için bir klasör içerir.The modules folder contains a folder for each module in your solution. Şu anda yalnızca sampleModule veya modüle verdiğiniz herhangi bir ad olmalıdır.Right now, that should only be SampleModule, or whatever name you gave to the module. SampleModule klasörü ana program kodunu, modül meta verilerini ve birkaç Docker dosyasını içerir.The SampleModule folder contains the main program code, the module metadata, and several Docker files.

  • . Env dosyası, kapsayıcı kayıt defterinizin kimlik bilgilerini tutar.The .env file holds the credentials to your container registry. Bu kimlik bilgileri, kapsayıcı görüntülerini çekmek için erişim sağlamak üzere IoT Edge cihazınızdan paylaşılır.These credentials are shared with your IoT Edge device so that it has access to pull the container images.

  • Dosya ve deployment.template.jsüzerindeki deployment.debug.template.js , bir dağıtım bildirimi oluşturmanıza yardımcı olan şablonlardır.The deployment.debug.template.json file and deployment.template.json file are templates that help you create a deployment manifest. Dağıtım bildirimi , bir cihaza hangi modüllerin dağıtılmasını, bunların nasıl yapılandırılacağını ve bunların birbirleriyle ve buluttan nasıl iletişim kurabildiğini tanımlayan bir dosyadır.A deployment manifest is a file that defines exactly which modules you want deployed on a device, how they should be configured, and how they can communicate with each other and the cloud. Şablon dosyaları bazı değerler için işaretçiler kullanır.The template files use pointers for some values. Şablonu doğru bir dağıtım bildirimine dönüştürdüğünüzde, işaretçiler diğer çözüm dosyalarından alınan değerlerle değiştirilmiştir.When you transform the template into a true deployment manifest, the pointers are replaced with values taken from other solution files. Dağıtım şablonunuzda iki ortak yer tutucuyu bulun:Locate the two common placeholders in your deployment template:

    • Kayıt defteri bilgileri bölümünde, adres, çözümü oluşturduğunuzda verdiğiniz bilgilerden tekrar doldurulur.In the registry credentials section, the address is autofilled from the information you provided when you created the solution. Ancak, Kullanıcı adı ve parola. env dosyasında depolanan değişkenlere başvurur.However, the username and password reference the variables stored in the .env file. Bu yapılandırma,. env dosyası git yoksayıldı, ancak dağıtım şablonu olmadığı için güvenlik içindir.This configuration is for security, as the .env file is git ignored, but the deployment template is not.
    • SampleModule bölümünde, çözümü oluştururken görüntü deposunu sağlasanız bile kapsayıcı görüntüsü doldurulmamış.In the SampleModule section, the container image isn't filled in even though you provided the image repository when you created the solution. Bu yer tutucu, SampleModule klasörünün içindeki module.js dosyasına işaret eder.This placeholder points to the module.json file inside the SampleModule folder. Bu dosyaya giderseniz, görüntü alanının depoyu içerdiğini, aynı zamanda kapsayıcının sürümünden ve platformundan oluşan bir etiket değerini görürsünüz.If you go to that file, you'll see that the image field does contain the repository, but also a tag value that is made up of the version and the platform of the container. Geliştirme döngünüzün bir parçası olarak sürümü el ile yineleyebilirsiniz ve bu bölümde daha sonra tanıtıldığımız bir değiştirici kullanarak kapsayıcı platformunu seçebilirsiniz.You can iterate the version manually as part of your development cycle, and you select the container platform using a switcher that we introduce later in this section.

IoT Edge aracısına kayıt defteri kimlik bilgilerinizi girinProvide your registry credentials to the IoT Edge agent

Ortam dosyası, kapsayıcı kayıt defterinizin kimlik bilgilerini depolar ve bu bilgileri IoT Edge çalışma zamanı ile paylaşır.The environment file stores the credentials for your container registry and shares them with the IoT Edge runtime. Çalışma zamanının kapsayıcı görüntülerinizi IoT Edge cihaza çekmek için bu kimlik bilgilerine ihtiyacı vardır.The runtime needs these credentials to pull your container images onto the IoT Edge device.

Not

Localhost: 5000 değerini Azure Container kayıt defterinizin oturum açma sunucusu değeriyle değiştirmediyseniz, proje şablonu oluştur adımında, dağıtım bildiriminin . env dosyası ve registrycredentials bölümü eksik olur.If you didn't replace the localhost:5000 value with the login server value from your Azure container registry, in the Create a project template step, the .env file and the registryCredentials section of the deployment manifest will be missing.

IoT Edge uzantısı, Azure 'dan kapsayıcı kayıt defteri kimlik bilgilerinizi çekmeye ve ortam dosyasına doldurmaya çalışır.The IoT Edge extension tries to pull your container registry credentials from Azure and populate them in the environment file. Kimlik bilgilerinizin zaten eklenmiş olup olmadığını denetleyin.Check to see if your credentials are already included. Yoksa, şimdi ekleyin:If not, add them now:

  1. Modül çözümünüzde . env dosyasını açın.Open the .env file in your module solution.
  2. Azure Container Registry 'nizden kopyaladığınız Kullanıcı adı ve parola değerlerini ekleyin.Add the username and password values that you copied from your Azure container registry.
  3. Değişikliklerinizi. env dosyasına kaydedin.Save your changes to the .env file.

Hedef mimarinizi seçinSelect your target architecture

Şu anda Visual Studio Code Linux AMD64 ve ARM32v7 cihazları için C# modülleri geliştirebilir.Currently, Visual Studio Code can develop C# modules for Linux AMD64 and ARM32v7 devices. Kapsayıcının nasıl oluşturulduğunu ve çalıştığını etkilediğinden, her çözümle hedeflediğiniz mimariyi seçmeniz gerekir.You need to select which architecture you're targeting with each solution, because that affects how the container is built and runs. Linux AMD64 varsayılandır.The default is Linux AMD64.

  1. Komut paleti ' ni açın ve Azure IoT Edge için arama yapın : Edge çözümü Için varsayılan hedef platformunu ayarla veya pencerenin altındaki yan çubukta kısayol simgesini seçin.Open the command palette and search for Azure IoT Edge: Set Default Target Platform for Edge Solution, or select the shortcut icon in the side bar at the bottom of the window.

    Yan çubukta mimari simgesini seçin

  2. Komut paletinde, seçenekler listesinden hedef mimariyi seçin.In the command palette, select the target architecture from the list of options. Bu öğreticide, IoT Edge cihaz olarak bir Ubuntu sanal makinesi kullanıyoruz, bu nedenle varsayılan AMD64'yi tutacağız.For this tutorial, we're using an Ubuntu virtual machine as the IoT Edge device, so will keep the default amd64.

Örnek kodu gözden geçirmeReview the sample code

Oluşturduğunuz çözüm şablonu, bir IoT Edge modülü için örnek kod içerir.The solution template that you created includes sample code for an IoT Edge module. Bu örnek modül yalnızca iletileri alır ve ardından üzerine geçirir.This sample module simply receives messages and then passes them on. Ardışık düzen işlevselliği, modüllerin birbirleriyle iletişim kurduğu IoT Edge önemli bir kavramı gösterir.The pipeline functionality demonstrates an important concept in IoT Edge, which is how modules communicate with each other.

Her modülün kodunda birden çok giriş ve Çıkış kuyruğu olabilir.Each module can have multiple input and output queues declared in their code. Cihazda çalışan IoT Edge hub 'ı bir modülün çıktısından gelen iletileri bir veya daha fazla modülün girdisine yönlendirir.The IoT Edge hub running on the device routes messages from the output of one module into the input of one or more modules. Giriş ve çıkışları bildirmek için özel kod diller arasında farklılık gösterir, ancak kavram tüm modüller arasında aynıdır.The specific code for declaring inputs and outputs varies between languages, but the concept is the same across all modules. Modüller arasında yönlendirme hakkında daha fazla bilgi için bkz. yolları bildirme.For more information about routing between modules, see Declare routes.

Proje şablonuyla birlikte gelen örnek C# kodu, .NET için IoT Hub SDK 'sının Moduleclient sınıfını kullanır.The sample C# code that comes with the project template uses the ModuleClient Class from the IoT Hub SDK for .NET.

  1. Modüller/SampleModule/ klasörünün içindeki program. cs dosyasını açın.Open the Program.cs file, which is inside the modules/SampleModule/ folder.

  2. Program. cs ' de Setınputmessagehandlerasync metodunu bulun.In program.cs, find the SetInputMessageHandlerAsync method.

  3. Setınputmessagehandlerasync yöntemi gelen iletileri almak için bir giriş kuyruğu ayarlar.The SetInputMessageHandlerAsync method sets up an input queue to receive incoming messages. Bu yöntemi gözden geçirin ve input1 adlı bir giriş kuyruğunu nasıl Başlatan hakkında bilgi alın.Review this method and see how it initializes an input queue called input1.

    Setınputmessagecallback oluşturucuda giriş adını bulma

  4. Ardından SendEventAsync yöntemini bulun.Next, find the SendEventAsync method.

  5. SendEventAsync yöntemi alınan iletileri işler ve bunları iletmek için bir çıkış kuyruğu ayarlar.The SendEventAsync method processes received messages and sets up an output queue to pass them along. Bu yöntemi gözden geçirin ve output1 adlı bir çıkış kuyruğu başlattığında bkz.Review this method and see that it initializes an output queue called output1.

    SendEventToOutputAsync içinde çıkış adını bulma

  6. deployment.template.jsdosya üzerinde açın.Open the deployment.template.json file.

  7. $EdgeAgent istenen özelliklerin modüller özelliğini bulun.Find the modules property of the $edgeAgent desired properties.

    Burada listelenen iki modül olmalıdır.There should be two modules listed here. Bunlardan biri, modüllerinizi test etmek için kullanabileceğiniz sanal sıcaklık verileri sağlamak üzere varsayılan olarak tüm şablonlara dahil olan SimulatedTemperatureSensor modülüdür.One is the SimulatedTemperatureSensor module, which is included in all the templates by default to provide simulated temperature data that you can use to test your modules. Diğeri, bu çözümün bir parçası olarak oluşturduğunuz sampleModule modülüdür.The other is the SampleModule module that you created as part of this solution.

  8. Dosyanın en altında, $edgeHub modülü için istenen özellikleri bulun.At the bottom of the file, find the desired properties for the $edgeHub module.

    IoT Edge hub modülünün işlevlerinden biri, iletileri bir dağıtımdaki tüm modüller arasında yönlendirmekte.One of the functions of the IoT Edge hub module is to route messages between all the modules in a deployment. Rotalar özelliğindeki değerleri gözden geçirin.Review the values in the routes property. Bir yol, SampleModuleToIoTHub, * sampleModule modülündeki herhangi bir çıkış kuyruğuna gelen herhangi bir iletiyi göstermek için bir joker karakter (* _) kullanır.One route, SampleModuleToIoTHub, uses a wildcard character (** _) to indicate any messages coming from any output queues in the SampleModule module. Bu iletiler, IoT Hub belirten ayrılmış bir ad olan _ $ yukarı akış * ' a gider.These messages go into _$upstream*, which is a reserved name that indicates IoT Hub. Diğer yol olan Sensortosamplemodule, SimulatedTemperatureSensor modülünden gelen iletileri alır ve bunları sampleModule kodunda gördüğünüz input1 giriş kuyruğuna yönlendirir.The other route, sensorToSampleModule, takes messages coming from the SimulatedTemperatureSensor module and routes them to the input1 input queue that you saw initialized in the SampleModule code.

    deployment.template.jsiçindeki yolları gözden geçirin

Çözümünüzü derleyin ve gönderinBuild and push your solution

Bazı önemli dağıtım kavramlarını anlamak için modül kodunu ve Dağıtım şablonunu gözden geçirdiniz.You've reviewed the module code and the deployment template to understand some key deployment concepts. Şimdi SampleModule kapsayıcı görüntüsünü oluşturmak ve kapsayıcı Kayıt defterinize göndermek için hazır olursunuz.Now, you're ready to build the SampleModule container image and push it to your container registry. Visual Studio Code için IoT araçları uzantısı ile bu adım, şablon dosyasındaki bilgileri ve çözüm dosyalarından modül bilgilerini temel alan dağıtım bildirimini de oluşturur.With the IoT tools extension for Visual Studio Code, this step also generates the deployment manifest based on the information in the template file and the module information from the solution files.

Docker 'da oturum açınSign in to Docker

Kapsayıcı görüntünüzü kayıt defterinde depolanacak şekilde gönderebilmesi için kapsayıcı kayıt defteri kimlik bilgilerinizi Docker 'a sağlayın.Provide your container registry credentials to Docker so that it can push your container image to be stored in the registry.

  1. Görünüm terminali ' i seçerek Visual Studio Code tümleşik Terminal ' i açın > .Open the Visual Studio Code integrated terminal by selecting View > Terminal.

  2. Kayıt defterini oluşturduktan sonra kaydettiğiniz Azure Container Registry kimlik bilgileriyle Docker 'da oturum açın.Sign in to Docker with the Azure Container registry credentials that you saved after creating the registry.

    docker login -u <ACR username> -p <ACR password> <ACR login server>
    

    Kullanımını öneren bir güvenlik uyarısı alabilirsiniz --password-stdin .You may receive a security warning recommending the use of --password-stdin. Bu en iyi uygulama, üretim senaryolarında önerilse de, Bu öğreticinin kapsamı dışındadır.While that best practice is recommended for production scenarios, it's outside the scope of this tutorial. Daha fazla bilgi için bkz. Docker oturum açma başvurusu.For more information, see the docker login reference.

  3. Azure Container Registry oturumu açmaLog in to Azure Container Registry

    az acr login -n <ACR registry name>
    

Derleme ve göndermeBuild and push

Visual Studio Code artık kapsayıcı Kayıt defterinize erişebilir, bu nedenle çözüm kodunu bir kapsayıcı görüntüsüne dönüştürmek için zaman atalım.Visual Studio Code now has access to your container registry, so it's time to turn the solution code into a container image.

  1. Visual Studio Code Gezgini 'nde, dosya üzerindedeployment.template.js sağ tıklayın ve Build ve push IoT Edge çözümünü seçin.In the Visual Studio Code explorer, right-click the deployment.template.json file and select Build and Push IoT Edge Solution.

    IoT Edge modülleri oluşturun ve gönderin

    Build ve push komutu üç işlem başlatır.The build and push command starts three operations. İlk olarak, dağıtım şablonunda ve diğer çözüm dosyalarında bilgi dışında, tam dağıtım bildirimini tutan config adlı çözümde yeni bir klasör oluşturur.First, it creates a new folder in the solution called config that holds the full deployment manifest, built out of information in the deployment template and other solution files. İkincisi, docker build hedef mimariniz için uygun dockerfile 'ı temel alan kapsayıcı görüntüsünü oluşturmak için çalışır.Second, it runs docker build to build the container image based on the appropriate dockerfile for your target architecture. Ardından, docker push görüntü deposunu kapsayıcı Kayıt defterinize göndermek için çalışır.Then, it runs docker push to push the image repository to your container registry.

    Bu işlem ilk kez birkaç dakika sürebilir, ancak komutları bir sonraki çalıştırışınızda daha hızlıdır.This process may take several minutes the first time, but is faster the next time that you run the commands.

  2. Dosyayı yeni oluşturulan yapılandırma klasöründe deployment.amd64.js açın.Open the deployment.amd64.json file in newly created config folder. Dosya adı hedef mimariyi yansıtır, bu nedenle farklı bir mimari seçerseniz farklı olur.The filename reflects the target architecture, so it will be different if you chose a different architecture.

  3. Artık yer tutucuları olan iki parametrenin doğru değerleriyle doldurulduğunu unutmayın.Notice that the two parameters that had placeholders now are filled in with their proper values. Registrycredentials bölümünde kayıt defteri Kullanıcı adınız ve parolanız. env dosyasından alınır.The registryCredentials section has your registry username and password pulled from the .env file. SampleModule , dosyadaki module.js, sürüm ve mimari etiketine sahip tam görüntü deposuna sahiptir.The SampleModule has the full image repository with the name, version, and architecture tag from the module.json file.

  4. SampleModule klasöründeki dosya module.js açın.Open the module.json file in the SampleModule folder.

  5. Modül görüntüsünün sürüm numarasını değiştirin.Change the version number for the module image. ($Schema sürümü değil sürümü.) Örneğin, modül kodunda küçük bir düzeltme yaptığımız gibi, düzeltme eki sürüm numarasını 0.0.2 olarak artırın.(The version, not the $schema-version.) For example, increment the patch version number to 0.0.2 as though we had made a small fix in the module code.

    İpucu

    Modül sürümleri sürüm denetimini etkinleştirir ve güncelleştirmeleri üretime dağıtabilmeniz için küçük bir cihaz kümesinde değişiklikleri test etmeniz için izin verir.Module versions enable version control, and allow you to test changes on a small set of devices before deploying updates to production. Derleme ve göndermeden önce modül sürümünü arttırmıyorsanız, depo kayıt defterinizde deponun üzerine yazarsınız.If you don't increment the module version before building and pushing, then you overwrite the repository in your container registry.

  6. Değişikliklerinizi dosyadaki module.jskaydedin.Save your changes to the module.json file.

  7. Dosyadaki deployment.template.js tekrar sağ tıklayın ve ardından IoT Edge çözümü oluştur ve Gönder' i seçin.Right-click the deployment.template.json file again, and again select Build and Push IoT Edge Solution.

  8. Dosyayı yeniden deployment.amd64.js açın.Open the deployment.amd64.json file again. Build ve push komutunu yeniden çalıştırdığınızda yeni bir dosyanın oluşturulduğuna dikkat edin.Notice that a new file wasn't created when you ran the build and push command again. Bunun yerine, aynı dosya değişiklikleri yansıtacak şekilde güncelleştirildi.Rather, the same file was updated to reflect the changes. SampleModule görüntüsü artık kapsayıcının 0.0.2 sürümüne işaret ediyor.The SampleModule image now points to the 0.0.2 version of the container.

  9. Build ve push komutunun ne yaptığını daha fazla doğrulamak için Azure Portal gidin ve kapsayıcı Kayıt defterinize gidin.To further verify what the build and push command did, go to the Azure portal and navigate to your container registry.

  10. Kapsayıcı kayıt defterinizde depolar ' ı ve sampleModule' ü seçin.In your container registry, select Repositories then samplemodule. Görüntünün her iki sürümünün de kayıt defterine itildiğini doğrulayın.Verify that both versions of the image were pushed to the registry.

    Her iki görüntü sürümünü kapsayıcı kayıt defterinde görüntüle

Sorun gidermeTroubleshoot

Modül görüntünüzü oluştururken ve gönderirken hatalarla karşılaşırsanız, genellikle geliştirme makinenizde Docker yapılandırması gerekir.If you encounter errors when building and pushing your module image, it often has to do with Docker configuration on your development machine. Yapılandırmanızı gözden geçirmek için aşağıdaki denetimleri kullanın:Use the following checks to review your configuration:

  • docker loginKomutu, kapsayıcı Kayıt defterinizden kopyaladığınız kimlik bilgilerini kullanarak çalıştırdınız mı?Did you run the docker login command using the credentials that you copied from your container registry? Bu kimlik bilgileri, Azure 'da oturum açmak için kullandığınız olanlardan farklıdır.These credentials are different than the ones that you use to sign in to Azure.
  • Kapsayıcı deponuz doğru mu?Is your container repository correct? Doğru kapsayıcı kayıt defteri adı ve doğru modülünüzün adı mı var?Does it have your correct container registry name and your correct module name? Denetlemek için SampleModule klasöründeki dosya module.js açın.Open the module.json file in the SampleModule folder to check. Depo değeri <registry name> . azurecr.io/sampleModule gibi görünmelidir.The repository value should look like <registry name>.azurecr.io/samplemodule.
  • Modülünüzün örnek modülünden farklı bir ad kullandıysanız, bu ad çözüm genelinde tutarlıdır mi?If you used a different name than SampleModule for your module, is that name consistent throughout the solution?
  • Makineniz, oluşturmakta olduğunuz kapsayıcı türünü çalıştırıyor mu?Is your machine running the same type of containers that you're building? Bu öğretici Linux IoT Edge cihazları için olduğundan Visual Studio Code, yan çubukta AMD64 veya Arm32v7 deyin ve Docker Desktop 'ın Linux kapsayıcılarını çalıştırması gerekir.This tutorial is for Linux IoT Edge devices, so Visual Studio Code should say amd64 or arm32v7 in the side bar, and Docker Desktop should be running Linux containers.

Modülleri cihaza dağıtDeploy modules to device

Oluşturulan kapsayıcı görüntülerinin kapsayıcı kayıt defterinizde depolandığını doğruladınız, bu nedenle bunları bir cihaza dağıtmaya zaman atalım.You verified that the built container images are stored in your container registry, so it's time to deploy them to a device. IoT Edge cihazınızın çalışır ve çalışıyor olduğundan emin olun.Make sure that your IoT Edge device is up and running.

  1. Visual Studio Code Gezgini ' nde, Azure IoT Hub bölümünde aygıtlar ' ı genişleterek IoT cihazları listesini görüntüleyin.In the Visual Studio Code explorer, under the Azure IoT Hub section, expand Devices to see your list of IoT devices.

  2. Dağıtmak istediğiniz IoT Edge cihaza sağ tıklayın, ardından tek cihaz Için dağıtım oluştur' u seçin.Right-click the IoT Edge device that you want to deploy to, then select Create Deployment for Single Device.

    Tek bir cihaz için dağıtım oluşturma

  3. Dosya Gezgini 'nde, yapılandırma klasörüne gidin ve deployment.amd64.jsdosya ' yı seçin.In the file explorer, navigate into the config folder then select the deployment.amd64.json file.

    Dosyada kapsayıcı kayıt defteri kimlik bilgileri veya modül görüntü değerlerini içermeyen deployment.template.jskullanmayın.Do not use the deployment.template.json file, which doesn't have the container registry credentials or module image values in it. Bir Linux ARM32 cihazını hedefliyorsanız, dağıtım bildirimi üzerinde deployment.arm32v7.jsolarak adlandırılır.If you're targeting a Linux ARM32 device, the deployment manifest will be named deployment.arm32v7.json.

  4. Cihazınızın altında, dağıtılan ve çalışan modüllerin listesini görmek için modüller ' i genişletin.Under your device, expand Modules to see a list of deployed and running modules. Yenile düğmesine tıklayın.Click the refresh button. Cihazınızda çalışan yeni SimulatedTemperatureSensor ve SampleModule modüllerini görmeniz gerekir.You should see the new SimulatedTemperatureSensor and SampleModule modules running on your device.

    Modüllerin başlaması birkaç dakika sürebilir.It may take a few minutes for the modules to start. IoT Edge çalışma zamanının yeni dağıtım bildirimini alması, kapsayıcı çalışma zamanından modül görüntülerini çekmek ve sonra her yeni modülü başlatması gerekir.The IoT Edge runtime needs to receive its new deployment manifest, pull down the module images from the container runtime, then start each new module.

    IoT Edge cihazınızda çalışan modülleri görüntüleme

Cihazdan iletileri görüntüleView messages from device

SampleModule kodu iletileri giriş kuyruğu aracılığıyla alır ve bunları çıkış kuyruğu boyunca geçirir.The SampleModule code receives messages through its input queue and passes them along through its output queue. Dağıtım bildirimi, iletileri SimulatedTemperatureSensor adresinden SampleModule 'e geçen yolları ve SampleModule 'tan IoT Hub iletilen iletileri bildirdi.The deployment manifest declared routes that passed messages to SampleModule from SimulatedTemperatureSensor, and then forwarded messages from SampleModule to IoT Hub. Visual Studio Code için Azure IoT araçları, her bir cihazınızdan IoT Hub geldikçe iletileri görmenizi sağlar.The Azure IoT tools for Visual Studio Code allow you to see messages as they arrive at IoT Hub from your individual devices.

  1. Visual Studio Code Gezgini ' nde, izlemek istediğiniz IoT Edge cihaza sağ tıklayın, sonra Izlemeyi Başlat yerleşik olay uç noktası' nı seçin.In the Visual Studio Code explorer, right-click the IoT Edge device that you want to monitor, then select Start Monitoring Built-in Event Endpoint.

  2. IoT Hub 'ınıza ulaşan iletileri görmek için Visual Studio Code çıkış penceresini izleyin.Watch the output window in Visual Studio Code to see messages arriving at your IoT hub.

    Gelen cihazı bulut iletilerine görüntüleme

Cihazdaki değişiklikleri görüntüleView changes on device

Cihazınızda neler olduğunu görmek isterseniz, cihazınızda çalışan IoT Edge çalışma zamanını ve modülleri incelemek için bu bölümdeki komutları kullanın.If you want to see what's happening on your device itself, use the commands in this section to inspect the IoT Edge runtime and modules running on your device.

Bu bölümdeki komutlar, geliştirme makineniz değil IoT Edge cihazınıza yöneliktir.The commands in this section are for your IoT Edge device, not your development machine. IoT Edge cihazınız için bir sanal makine kullanıyorsanız, şimdi bu sunucuya bağlanın.If you're using a virtual machine for your IoT Edge device, connect to it now. Azure 'da, sanal makinenin genel bakış sayfasına gidin ve güvenli kabuk bağlantısına erişmek için Bağlan ' ı seçin.In Azure, go to the virtual machine's overview page and select Connect to access the secure shell connection.

  • Cihazınıza dağıtılan tüm modülleri görüntüleyin ve durumlarını denetleyin:View all modules deployed to your device, and check their status:

    iotedge list
    

    Dört modül görmeniz gerekir: iki IoT Edge çalışma zamanı modülü, SimulatedTemperatureSensor ve SampleModule.You should see four modules: the two IoT Edge runtime modules, SimulatedTemperatureSensor, and SampleModule. Dört tümü çalışıyor olarak listelenmelidir.All four should be listed as running.

  • Belirli bir modülün günlüklerini inceleyin:Inspect the logs for a specific module:

    iotedge logs <module name>
    

    IoT Edge modüller büyük/küçük harfe duyarlıdır.IoT Edge modules are case-sensitive.

    SimulatedTemperatureSensor ve SampleModule günlükleri işledikleri iletileri göstermelidir.The SimulatedTemperatureSensor and SampleModule logs should show the messages they're processing. EdgeAgent modülü, diğer modüllerin başlatılmasından sorumludur, bu nedenle Günlükler dağıtım bildirimini uygulamayla ilgili bilgiler alacak.The edgeAgent module is responsible for starting the other modules, so its logs will have information about implementing the deployment manifest. Herhangi bir modül listelenmemişse veya çalışmıyorsa, edgeAgent günlükleri muhtemelen hatalara sahip olur.If any module isn't listed or isn't running, the edgeAgent logs will probably have the errors. EdgeHub modülü, modüller ve IoT Hub arasındaki iletişimlerden sorumludur.The edgeHub module is responsible for communications between the modules and IoT Hub. Modüller çalışır duruma geliyor ancak iletiler IoT Hub 'ınıza inmemişse, edgeHub günlükleri muhtemelen hatalara sahip olur.If the modules are up and running, but the messages aren't arriving at your IoT hub, the edgeHub logs will probably have the errors.

Kaynakları temizlemeClean up resources

Bir sonraki önerilen makaleye geçmeyi planlıyorsanız, oluşturduğunuz kaynaklarla yapılandırmaları tutabilir ve yeniden kullanabilirsiniz.If you plan to continue to the next recommended article, you can keep the resources and configurations that you created and reuse them. Aynı IoT Edge cihazını test cihazı olarak kullanmaya devam edebilirsiniz.You can also keep using the same IoT Edge device as a test device.

Aksi takdirde, ücretlerden kaçınmak için bu makalede kullandığınız yerel konfigürasyonları ve Azure kaynaklarını silebilirsiniz.Otherwise, you can delete the local configurations and the Azure resources that you used in this article to avoid charges.

Azure kaynaklarını silmeDelete Azure resources

Azure kaynaklarını ve kaynak gruplarını silme işlemi geri alınamaz.Deleting Azure resources and resource groups is irreversible. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun.Make sure that you don't accidentally delete the wrong resource group or resources. IoT Hub 'ı tutmak istediğiniz kaynakları içeren mevcut bir kaynak grubu içinde oluşturduysanız, kaynak grubunu değil yalnızca IoT Hub kaynağını silin.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.

Kaynakları silmek için:To delete the resources:

  1. Azure portalında oturum açın ve Kaynak grupları’nı seçin.Sign in to the Azure portal, and then select Resource groups.

  2. IoT Edge test kaynaklarınızı içeren kaynak grubunun adını seçin.Select the name of the resource group that contains your IoT Edge test resources.

  3. Kaynak grubunuzda bulunan kaynak listesini gözden geçirin.Review the list of resources that are contained in your resource group. Tümünü silmek isterseniz Kaynak grubunu sil'i seçebilirsiniz.If you want to delete all of them, you can select Delete resource group. Kaynakların yalnızca bazılarını silmek istiyorsanız tek tek tıklayarak silebilirsiniz.If you want to delete only some of them, you can click into each resource to delete them individually.

Sonraki adımlarNext steps

Bu öğreticide, geliştirme makinenizde Visual Studio Code ayarlarsınız ve ilk IoT Edge modülünüzü buradan dağıttınız.In this tutorial, you set up Visual Studio Code on your development machine and deployed your first IoT Edge module from it. Temel kavramları öğrenmiş olduğunuza göre, bir modüle işlev eklemeyi deneyin. böylece bu, üzerinden geçen verileri analiz edebilir.Now that you know the basic concepts, try adding functionality to a module so that it can analyze the data passing through it. Tercih ettiğiniz dili seçin:Choose your preferred language: