Hızlı Başlangıç: Node.js IOT Hub cihaz akışları (Önizleme) ile bir cihaz uygulaması için iletişimQuickstart: Communicate to a device application in Node.js via IoT Hub device streams (preview)

Microsoft Azure IOT Hub cihaz akışları olarak şu anda destekleyen bir önizleme özelliği.Microsoft Azure IoT Hub currently supports device streams as a preview feature.

IOT Hub cihaz akışları güvenli ve güvenlik duvarı uyumlu bir şekilde iletişim kurmak hizmet ve cihaz uygulamalarınıza izin verin.IoT Hub device streams allow service and device applications to communicate in a secure and firewall-friendly manner. Genel Önizleme süresince Node.js SDK'sı yalnızca hizmet tarafında cihaz akışlarını destekler.During public preview, Node.js SDK only supports device streams on the service side. Sonuç olarak, bu hızlı başlangıçta, yalnızca hizmet tarafı uygulamayı çalıştırmak için yönergeleri kapsar.As a result, this quickstart only covers instructions to run the service-side application. Şu hızlı başlangıçlarda birinden bir eşlik eden cihaz tarafında uygulama çalıştırmalısınız:You should run an accompanying device-side application from one of the following quickstarts:

Bu hızlı başlangıçta Hizmet tarafı Node.js uygulaması aşağıdaki işlevlere sahiptir:The service-side Node.js application in this quickstart has the following functionalities:

  • IOT cihaz bir cihaz akış oluşturur.Creates a device stream to an IoT device.

  • Komut satırından giriş okur ve geri echo cihaz uygulamaya gönderir.Reads input from command line and sends it to the device application, which will echo it back.

Kod, veri göndermek ve almak için nasıl kullanılacağını yanı sıra, bir cihaz akış başlatma işlemi gösterilecektir.The code will demonstrate the initiation process of a device stream, as well as how to use it to send and receive data.

Azure Cloud Shell kullanmaUse Azure Cloud Shell

Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı Azure Cloud Shell.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell, ya da bash PowerShell Azure hizmetleriyle çalışmak için kullanmanıza olanak sağlar.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Bu makaledeki kodu, yerel ortamınıza herhangi bir şey yüklemeye gerek kalmadan çalıştırmak için Cloud Shell önceden yüklenmiş komutları kullanabilirsiniz.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell başlatmak için:To launch Azure Cloud Shell:

SeçenekOption Örnek/bağlantıExample/Link
Kod bloğunun sağ üst köşesindeki Deneyin’i seçin.Select Try It in the upper-right corner of a code block. Dene ' nin seçilmesi, kodu Cloud Shell otomatik olarak kopyalamaz.Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell için deneme örneği
Tarayıcınızda Cloud Shell açmak için Başlat Cloud Shell düğmesine gidin veyaseçin. https://shell.azure.comGo to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Cloud Shell yeni bir pencerede BaşlatLaunch Cloud Shell in a new window
Azure Portalsağ üstteki menü çubuğunda Cloud Shell düğmesini seçin.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure portaldaki Cloud Shell düğmesi

Bu makaledeki kodu Azure Cloud Shell çalıştırmak için:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell'i açın.Open Cloud Shell.
  2. Kodu kopyalamak için bir kod bloğunda Kopyala düğmesini seçin.Select the Copy button on a code block to copy the code.
  3. Kodu Windows ve Linux 'ta CTRL+SHIFT+v veya MacOS 'ta cmd+Shift+v ile Cloud Shell oturumuna yapıştırın.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Kodu çalıştırmak için ENTER tuşuna basın.Press Enter to run the code.

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.

ÖnkoşullarPrerequisites

Cihaz akışları şu anda önizlemesidir yalnızca IOT hub'ları aşağıdaki bölgelerde oluşturulan için desteklenir:The preview of device streams is currently only supported for IoT Hubs created in the following regions:

  • Orta ABDCentral US

  • Orta ABD EUAPCentral US EUAP

Bu hızlı başlangıçta Hizmet tarafı uygulamayı çalıştırmak için geliştirme makinenizi Node.js v10.x.x veya sonraki bir sürümü gerekir.To run the service-side application in this quickstart you need Node.js v10.x.x or later on your development machine.

Node.js için birden çok platformdan indirebileceğiniz Nodejs.org.You can download Node.js for multiple platforms from Nodejs.org.

Aşağıdaki komutu kullanarak geliştirme makinenizde geçerli Node.js sürümünü doğrulayabilirsiniz:You can verify the current version of Node.js on your development machine using the following command:

node --version

Microsoft Azure IOT uzantısı için Azure CLI Cloud Shell Örneğinize eklemek için aşağıdaki komutu çalıştırın.Run the following command to add the Microsoft Azure IoT Extension for Azure CLI to your Cloud Shell instance. IOT uzantısı, Azure CLI için IOT Hub, IOT Edge ve IOT cihaz sağlama hizmeti (DPS) belirli komutları ekler.The IOT Extension adds IoT Hub, IoT Edge, and IoT Device Provisioning Service (DPS) specific commands to Azure CLI.

az extension add --name azure-cli-iot-ext

Örnek Node.js projesini önceden indirmediyseniz https://github.com/Azure-Samples/azure-iot-samples-node/archive/streams-preview.zip adresinden indirip ZIP arşivini ayıklayın.If you haven't already done so, download the sample Node.js project from https://github.com/Azure-Samples/azure-iot-samples-node/archive/streams-preview.zip and extract the ZIP archive.

IoT hub oluşturmaCreate an IoT hub

Önceki tamamladıysanız hızlı başlangıç: Bir IOT hub'ına bir CİHAZDAN telemetri gönderme, bu adımı atlayabilirsiniz.If you completed the previous Quickstart: Send telemetry from a device to an IoT hub, you can skip this step.

Bu bölümde, IOT hub'ı kullanarak oluşturmak açıklar Azure portalında.This section describes how to create an IoT hub by using the Azure portal.

  1. Azure Portal oturum açın.Sign in to the Azure portal.

  2. Seçin kaynak Oluşturve ardından nesnelerin interneti.Select Create a resource, and then select Internet of Things.

  3. Sağdaki listeden seçin IOT hub'ı.In the list at the right, select Iot Hub. IOT hub'ı oluşturmak için ilk sayfasını açar.The first page for creating an IoT hub opens.

    Azure portalında bir IOT hub'ı oluşturma

    Şu alanları doldurun:Fill in the fields:

    a.a. İçinde abonelik aşağı açılan listesinde, IOT hub'ınız için kullanılacak aboneliği seçin.In the Subscription drop-down list, select the subscription to use for your IoT hub.

    b.b. İçin kaynak grubu, aşağıdakilerden birini yapın:For Resource Group, do either of the following:

    • Yeni bir kaynak grubu oluşturmak için Seç Yeni Oluştur ve kullanmak istediğiniz adı girin.To create a new resource group, select Create new and enter the name you want to use.

    • Mevcut bir kaynak grubunu kullanmayı seçin var olanı kullan ve aşağı açılan listesinde, kaynak grubunu seçin.To use an existing resource group, select Use existing and then, in the drop-down list, select the resource group.

      Daha fazla bilgi için yönetme Azure Resource Manager kaynak grupları.For more information, see Manage Azure Resource Manager resource groups.

    c.c. İçinde bölge aşağı açılan listesinde, hub'ınıza yer almasını istediğiniz bölgeyi seçin.In the Region drop-down list, select the region in which you want your hub to be located. IOT Hub cihaz akışları önizleme ya da destekleyen bir bölge seçin Orta ABD veya Orta ABD EUAP.Select a region that supports the IoT Hub device streams preview, either Central US or Central US EUAP.

    d.d. İçinde IOT hub'ı adı kutusuna, IOT hub'ınız için bir ad girin.In the IoT Hub Name box, enter the name for your IoT hub. Adın genel olarak benzersiz olması gerekir.The name must be globally unique. Girdiğiniz ad kullanılabilir durumdaysa yeşil bir onay işareti görünür.If the name you enter is available, a green check mark appears.

    Önemli

    IOT hub'ı bir DNS uç noktası olarak herkes tarafından bulunabilir çünkü bu ad, tüm hassas veya kişisel olarak tanımlanabilen bilgileri girmekten kaçınmak emin olun.Because the IoT hub will be publicly discoverable as a DNS endpoint, be sure to avoid entering any sensitive or personally identifiable information when you name it.

  4. IOT hub'ınıza oluşturmaya devam etmek için seçin sonraki: Boyut ve ölçek.To continue creating your IoT hub, select Next: Size and scale.

    Boyut ve ölçek için Azure portalını kullanarak yeni bir IOT hub'ı ayarlama

    Bu bölümde, varsayılan ayarları kabul edin ve seçin gözden geçir + Oluştur altındaki.In this pane, you can accept the default settings and select Review + create at the bottom. Aşağıdaki seçenekleri göz önünde bulundurun:Consider the following options:

    • İçinde fiyatlandırma ve ölçek katmanı aşağı açılan listesinde, standart katmanların birini seçin (S1, S2, veya S3) veya F1: Ücretsiz katmanı.In the Pricing and scale tier drop-down list, select one of the standard tiers (S1, S2, or S3) or F1: Free tier. Bu seçenek, Filo boyutuna ve hub'ınıza (örneğin, telemetri iletilerini) beklediğiniz akış dışı iş yükleri tarafından da destekli.This choice can also be guided by the size of your fleet and the non-streaming workloads that you expect in your hub (for example, telemetry messages). Örneğin, ücretsiz katmanı, sınama ve değerlendirme için tasarlanmıştır.For example, the free tier is intended for testing and evaluation. Günlük ileti 8000'en fazla ve IOT hub'ına bağlanması 500 CİHAZDAN sağlar.It allows 500 devices to be connected to the IoT hub and up to 8,000 messages per day. Her Azure aboneliğinin bir IOT hub ücretsiz katmanında oluşturabilirsiniz.Each Azure subscription can create one IoT hub in the free tier.

    • İçin numarası, IOT Hub birimlerinin: Bu seçenek, akış dışı iş yükü hub'ınıza beklediğiniz bağlıdır.For Number of IoT Hub units: This choice depends on non-streaming workload you expect in your hub. Şu an için 1 seçebilirsiniz.You can select 1 for now.

    Katman seçenekleri hakkında daha fazla bilgi için bkz. doğru IOT hub katmanını seçme.For more information about tier options, see Choose the right IoT hub tier.

  5. Seçimlerinizi gözden geçirmek için seçin gözden + Oluştur sekmesi. Açılan bölmede aşağıdakine benzer:To review your choices, select the Review + create tab. The pane that opens is similar to the following:

    Yeni IOT hub'ı oluşturma hakkında bilgi

  6. Yeni IOT hub'ınızı oluşturmak için Seç Oluştur.To create your new IoT hub, select Create. Bu işlem birkaç dakika sürer.The process takes a few minutes.

Cihaz kaydetmeRegister a device

Önceki tamamladıysanız hızlı başlangıç: Bir IOT hub'ına bir CİHAZDAN telemetri gönderme, bu adımı atlayabilirsiniz.If you completed the previous Quickstart: Send telemetry from a device to an IoT hub, you can skip this step.

Bir cihazın bağlanabilmesi için IoT hub’ınıza kaydedilmesi gerekir.A device must be registered with your IoT hub before it can connect. Bu hızlı başlangıçta Azure Cloud Shell kullanarak bir simülasyon cihazı kaydedeceksiniz.In this quickstart, you use the Azure Cloud Shell to register a simulated device.

  1. Cihaz kimliği oluşturmak için Azure Cloud Shell'de aşağıdaki komutu çalıştırın.Run the following command in Azure Cloud Shell to create the device identity.

    YourIoTHubName: Aşağıda bu yer tutucu IOT hub'ınız için seçtiğiniz adı ile değiştirin.YourIoTHubName: Replace this placeholder below with the name you chose for your IoT hub.

    Cihazım: Bu, kayıtlı bir cihaz için verilen addır.MyDevice: This is the name given for the registered device. Cihazım gösterildiği gibi kullanın.Use MyDevice as shown. Cihazınız için farklı bir ad seçerseniz bu makalenin geri kalan bölümünde aynı adı kullanmanız ve örnek uygulamaları çalıştırmadan önce bunlarda da cihaz adını güncelleştirmeniz gerekir.If you choose a different name for your device, you will also need to use that name throughout this article, and update the device name in the sample applications before you run them.

    az iot hub device-identity create --hub-name YourIoTHubName --device-id MyDevice
    
  2. Arka uç uygulamasının IoT hub’ınıza bağlanmasına ve iletileri almasına olanak sağlamak için bir hizmet bağlantı dizesi de gerekir.You also need a service connection string to enable the back-end application to connect to your IoT hub and retrieve the messages. Aşağıdaki komut, IoT hub'ınız için hizmeti bağlantı dizesini alır:The following command retrieves the service connection string for your IoT hub:

    YourIoTHubName: Aşağıda bu yer tutucu IOT hub'ınız için seçtiğiniz adı ile değiştirin.YourIoTHubName: Replace this placeholder below with the name you chose for your IoT hub.

    az iot hub show-connection-string --policy-name service --name YourIoTHubName
    

    Şuna benzer döndürülen değeri not edin:Make a note of the returned value, which looks like this:

    "HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}"

Cihaz ve hizmet aracılığıyla cihaz akışları arasında iletişimCommunicate between device and service via device streams

Bu bölümde, hem cihaz tarafında uygulama hem de hizmet tarafı uygulamayı çalıştırın ve ikisi arasındaki iletişim.In this section, you run both the device-side application and the service-side application and communicate between the two.

Aygıt tarafı uygulamayı çalıştırınRun the device-side application

Daha önce belirtildiği gibi IOT Hub Node.js SDK'sı hizmet tarafında yalnızca cihaz akışlarını destekler.As mentioned earlier, IoT Hub Node.js SDK only supports device streams on the service side. Aygıt tarafı uygulama için bu hızlı başlangıçlardan birinde eşlik eden cihaz programı kullanın:For device-side application, use the accompanying device program available in one of these quickstarts:

Aygıt tarafı uygulamayı sonraki adıma devam etmeden önce çalıştığından emin olun.Ensure the device-side application is running before proceeding to the next step.

Hizmet tarafı uygulamayı çalıştırınRun the service-side application

Aygıt tarafı uygulamayı çalıştıran varsayıldığında, node.js'de Hizmet tarafı uygulamayı çalıştırmak için aşağıdaki adımları izleyin:Assuming the device-side application is running, follow the steps below to run the service-side application in Node.js:

  • Ortam değişkenleri olarak, cihaz kimliği ve hizmet kimlik bilgilerini sağlayın.Provide your service credentials and device ID as environment variables.

    # In Linux
    export IOTHUB_CONNECTION_STRING="<provide_your_service_connection_string>"
    export STREAMING_TARGET_DEVICE="MyDevice"
    
    # In Windows
    SET IOTHUB_CONNECTION_STRING=<provide_your_service_connection_string>
    SET STREAMING_TARGET_DEVICE=MyDevice
    

    Değişiklik MyDevice cihazınız için seçtiğiniz cihaz kimliği.Change MyDevice to the device ID you chose for your device.

  • Gidin Quickstarts/device-streams-service , sıkıştırması, proje klasörü ve düğüm kullanarak örneği çalıştırın.Navigate to Quickstarts/device-streams-service in your unzipped project folder and run the sample using node.

    cd azure-iot-samples-node-streams-preview/iot-hub/Quickstarts/device-streams-service
    
    # Install the preview service SDK, and other dependencies
    npm install azure-iothub@streams-preview
    npm install
    
    node echo.js
    

Son adımın sonunda, hizmet tarafı program cihazınıza ve kurulan sonra bir akışı başlatacak bir dize arabelleğine akış üzerinden hizmete gönderin.At the end of the last step, the service-side program will initiate a stream to your device and once established will send a string buffer to the service over the stream. Bu örnekte, yalnızca hizmet tarafı program okur stdin terminal üzerinde ve ardından bunu geri echo cihaza gönderir.In this sample, the service-side program simply reads the stdin on the terminal and sends it to the device, which will then echo it back. Bu, iki uygulama arasındaki başarılı çift yönlü iletişim gösterir.This demonstrates successful bidirectional communication between the two applications.

Hizmet tarafı konsol çıktısı

Ardından, tuşlarına basarak programı sonlandırabilirsiniz tekrar girin.You can then terminate the program by pressing enter again.

Kaynakları temizlemeClean up resources

Önerilen sonraki makalede devam etmeyi planlıyorsanız, korumak ve önceden oluşturduğunuz kaynakları yeniden.If you plan to continue to the next recommended article, you can keep and reuse the resources you've already created.

Aksi takdirde ücretlerden kaçınmak için bu makalede oluşturduğunuz Azure kaynaklarını silebilirsiniz.Otherwise, to avoid charges, you can delete the Azure resources that you created in this article.

Önemli

Silinen kaynak grupları geri alınamaz.Deleting a resource group is irreversible. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir.The resource group and all the resources contained in it are permanently deleted. 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'ı korumak istediğiniz kaynakları içeren kaynak grubu içinde oluşturduysanız, yalnızca IOT hub'ı kaynağının, kaynak grubunu silin.If you created the IoT hub inside an existing resource group that contains resources that you want to keep, delete only the IoT hub resource itself, not the resource group.

Bir kaynak grubunu adıyla silmek için:To delete a resource group by name:

  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. İçinde ada göre filtrele kutusunda, IOT hub'ınızı içeren kaynak grubunun adını girin.In the Filter by name box, enter the name of the resource group that contains your IoT hub.

  3. Sonuç listesinde, kaynak grubunuzun sağındaki üç nokta simgesini seçin. ( ... ) ve ardından kaynak grubunu Sil.In the result list, to the right of your resource group, select the ellipsis (...), and then select Delete resource group.

    "Kaynak grubunu sil" düğmesi

  4. Kaynak grubu silme işlemini onaylamak için kaynak grubu adı girin ve ardından Sil.To confirm the deletion of the resource group, reenter the resource group name, and then select Delete. Birkaç dakika sonra kaynak grubunu ve içerdiği tüm kaynaklarla silinir.After a few moments, the resource group and all its contained resources are deleted.

Sonraki adımlarNext steps

Bu hızlı başlangıçta, bir IOT hub'ı ayarladınız, kayıtlı bir cihaz, bir cihaz akışını cihazını ve hizmetini tarafında uygulamalar arasında kurulan ve akış uygulamaları arasında sürekli veri göndermek için kullanılan.In this quickstart, you have set up an IoT hub, registered a device, established a device stream between applications on the device and service side, and used the stream to send data back and forth between the applications.

Cihaz akışları hakkında daha fazla bilgi edinmek için aşağıdaki bağlantıları kullanın:Use the links below to learn more about device streams: