Hızlı Başlangıç: sanal Linux cihazına ilk IoT Edge modülünüzü dağıtma

Şunun için geçerlidir:evet simgesi IoT Edge 1.1 Diğer sürümler:IoT Edge 1.3, IoT Edge 1.4

Şunlar için geçerlidir:IoT Edge 1.3 onay işareti IoT Edge 1.3 IoT Edge 1.4 onay işareti IoT Edge 1.4 Diğer sürümler:IoT Edge 1.1

Sanal Linux IoT Edge cihazına kapsayıcılı kod dağıtarak bu hızlı başlangıçta Azure IoT Edge test edin. IoT Edge, iş yüklerinizin daha fazlasını uç cihazlara gönderebilmek için cihazlarınızdaki kodu uzaktan yönetmenize olanak tanır. Bu hızlı başlangıçta, IoT Edge cihazınız için hızlı bir şekilde test makinesi oluşturmanıza ve bitirdiğinizde silmenize olanak tanıyan bir Azure sanal makinesi kullanmanızı öneririz.

Bu hızlı başlangıçta şunları yapmayı öğrenirsiniz:

  • Bir IoT Hub oluşturma.
  • Bir IoT Edge cihazını IoT hub'ınıza kaydetme.
  • Sanal bir cihaza IoT Edge çalışma zamanını yükleyin ve başlatın.
  • Bir IoT Edge cihazına uzaktan modül dağıtma.

Diyagram - Cihaz ve bulut için hızlı başlangıç mimarisi

Bu hızlı başlangıçta, IoT Edge cihaz olarak yapılandırılmış bir Linux sanal makinesi oluşturma işlemi adım adım açıklanmıştır. Ardından, Azure portal cihazınıza bir modül dağıtırsınız. Bu hızlı başlangıçta kullanılan modül sıcaklık, nem ve basınç verileri oluşturan sanal bir sensördür. Diğer Azure IoT Edge öğreticileri, iş içgörüleri için simülasyon verilerini analiz eden ek modüller dağıtarak burada yaptığınız çalışmayı kullanır.

Etkin bir Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Ön koşullar

Ortamınızı Azure CLI için hazırlayın.

Bulut kaynakları:

  • Bu hızlı başlangıçta kullandığınız tüm kaynakları yönetmek için kullanacağınız bir kaynak grubu. Bu hızlı başlangıçta ve aşağıdaki öğreticilerde IoTEdgeResources örnek kaynak grubu adını kullanacağız.

    az group create --name IoTEdgeResources --location westus2
    

IoT hub oluşturma

Azure CLI ile bir IoT hub'ı oluşturarak hızlı başlangıcı başlatın.

Diyagram - Bulutta IoT hub'ı oluşturma

IoT Hub’ın ücretsiz düzeyi bu hızlı başlangıç için kullanılabilir. Geçmişte IoT Hub kullandıysanız ve zaten bir hub oluşturduysanız bu IoT hub'ını kullanabilirsiniz.

Aşağıdaki kod IoTEdgeResources kaynak grubunda ücretsiz bir F1 hub'ı oluşturur. değerini IoT hub'ınız için benzersiz bir adla değiştirin {hub_name} . IoT Hub oluşturulması birkaç dakika sürebilir.

az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2

Aboneliğinizde zaten bir ücretsiz hub olduğu için hata alırsanız, SKU değerini S1 olarak değiştirin. Her aboneliğin yalnızca bir ücretsiz IoT hub’ı olabilir. IoT Hub adının kullanılamadığını belirten bir hata alırsanız, başka birinin zaten bu ada sahip bir hub'ı olduğu anlamına gelir. Yeni bir ad deneyin.

IoT Edge cihazı kaydetme

Yeni oluşturulan IoT hub'ına bir IoT Edge cihazı kaydedin.

Diyagram - Cihazı IoT Hub kimliğiyle kaydetme

ioT hub'ınızla iletişim kurabilmesi için IoT Edge cihazınız için bir cihaz kimliği oluşturun. Cihaz kimliği bulutta kalır ve fiziksel cihazla cihaz kimliği arasında bağlantı kurmak için benzersiz bir bağlantı dizesi kullanmanız gerekir.

IoT Edge cihazlar normal IoT cihazlarından farklı davrandığından ve yönetilebildiğinden, bu kimliği bayrağına sahip --edge-enabled bir IoT Edge cihaz için olarak bildirin.

  1. Azure Cloud Shell aşağıdaki komutu girerek hub'ınızda myEdgeDevice adlı bir cihaz oluşturun.

    az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name {hub_name}
    

    iothubowner ilke anahtarlarıyla ilgili bir hata alırsanız Cloud Shell azure-iot uzantısının en son sürümünü çalıştırdığından emin olun.

  2. Fiziksel cihazınızı IoT Hub kimliğine bağlayan cihazınızın bağlantı dizesini görüntüleyin. IoT hub'ınızın adını, cihazınızın adını ve ardından ikisi arasındaki bağlantıların kimliğini doğrulayan paylaşılan bir anahtarı içerir. IoT Edge cihazınızı ayarlarken sonraki bölümde bu bağlantı dizesine yeniden başvuracağız.

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
    

    CLI çıkışından bağlantı dizesini görüntüleme

IoT Edge cihazınızı yapılandırma

Üzerinde Azure IoT Edge çalışma zamanı olan bir sanal makine oluşturun.

Diyagram - Cihazda çalışma zamanını başlatma

IoT Edge çalışma zamanı tüm IoT Edge cihazlarına dağıtılır. Üç bileşeni vardır. IoT Edge güvenlik daemon'ı, IoT Edge bir cihaz her başlatıldığında başlar ve IoT Edge aracısını başlatarak cihazı önyükler. IoT Edge aracısı, IoT Edge hub'ı dahil olmak üzere IoT Edge cihazdaki modüllerin dağıtımını ve izlenmesini kolaylaştırır. IoT Edge hub'ı, IoT Edge cihazdaki modüller arasındaki ve cihaz ile IoT Hub arasındaki iletişimi yönetir.

Çalışma zamanı yapılandırması sırasında cihaz bağlantı dizesi sağlamanız gerekir. Bu, Azure CLI'dan aldığınız dizedir. Bu dize, fiziksel cihazınızı Azure'daki IoT Edge cihaz kimliğiyle ilişkilendirir.

IoT Edge cihazını dağıtma

Bu bölümde yeni bir sanal makine oluşturmak ve IoT Edge çalışma zamanını yüklemek için bir Azure Resource Manager şablonu kullanılmaktadır. Bunun yerine kendi Linux cihazınızı kullanmak istiyorsanız, Tek bir Linux IoT Edge cihazını el ile sağlama makalesindeki yükleme adımlarını izleyebilir ve bu hızlı başlangıca dönebilirsiniz.

Önceden oluşturulmuş iotedge-vm-deploy şablonunu temel alarak IoT Edge cihazınızı oluşturmak için aşağıdaki CLI komutunu kullanın.

  • Bash veya Cloud Shell kullanıcıları için aşağıdaki komutu bir metin düzenleyicisine kopyalayın, yer tutucu metni bilgilerinizle değiştirin ve ardından bash veya Cloud Shell pencerenize kopyalayın:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/edgeDeploy.json" \
    --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' \
    --parameters adminUsername='azureUser' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
    
  • PowerShell kullanıcıları için aşağıdaki komutu PowerShell pencerenize kopyalayın ve yer tutucu metni kendi bilgilerinizle değiştirin:

    az deployment group create `
    --resource-group IoTEdgeResources `
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/edgeDeploy.json" `
    --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' `
    --parameters adminUsername='azureUser' `
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) `
    --parameters authenticationType='password' `
    --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
    

Önceden oluşturulmuş iotedge-vm-deploy şablonunu temel alarak IoT Edge cihazınızı oluşturmak için aşağıdaki CLI komutunu kullanın.

  • Bash veya Cloud Shell kullanıcıları için aşağıdaki komutu bir metin düzenleyicisine kopyalayın, yer tutucu metni bilgilerinizle değiştirin ve ardından bash veya Cloud Shell pencerenize kopyalayın:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.4/edgeDeploy.json" \
    --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' \
    --parameters adminUsername='azureUser' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
    
  • PowerShell kullanıcıları için aşağıdaki komutu PowerShell pencerenize kopyalayın ve yer tutucu metni kendi bilgilerinizle değiştirin:

    az deployment group create `
    --resource-group IoTEdgeResources `
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.4/edgeDeploy.json" `
    --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' `
    --parameters adminUsername='azureUser' `
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) `
    --parameters authenticationType='password' `
    --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
    

Bu şablon aşağıdaki parametreleri alır:

Parametre Açıklama
resource-group Kaynakların oluşturulacağı kaynak grubu. Bu makale boyunca kullandığımız varsayılan IoTEdgeResources'ları kullanın veya aboneliğinizdeki mevcut bir kaynak grubunun adını belirtin.
template-uri Kullanmakta olduğumuz Resource Manager şablonunun işaretçisi.
dnsLabelPrefix Sanal makinenin ana bilgisayar adını oluşturmak için kullanılacak dize. Yer tutucu metni sanal makinenizin adıyla değiştirin.
adminUsername Sanal makinenin yönetici hesabı için bir kullanıcı adı. azureUser örneğini kullanın veya yeni bir kullanıcı adı sağlayın.
deviceConnectionString sanal makinede IoT Edge çalışma zamanını yapılandırmak için kullanılan IoT Hub cihaz kimliğinden gelen bağlantı dizesi. Bu parametredeki CLI komutu bağlantı dizesini sizin için alır. Yer tutucu metni IoT hub'ınızın adıyla değiştirin.
authenticationType Yönetici hesabının kimlik doğrulama yöntemi. Bu hızlı başlangıçta parola kimlik doğrulaması kullanılır, ancak bu parametreyi sshPublicKey olarak da ayarlayabilirsiniz.
adminPasswordOrKey Yönetici hesabının SSH anahtarının parolası veya değeri. Yer tutucu metni güvenli bir parolayla değiştirin. Parolanız en az 12 karakter uzunluğunda olmalı ve aşağıdakilerden üçüne sahip olmalıdır: küçük harf karakterler, büyük harf karakterler, rakamlar ve özel karakterler.

Dağıtım tamamlandıktan sonra CLI'da sanal makineye bağlanmak için SSH bilgilerini içeren JSON biçimli çıkış almanız gerekir. Çıkışlar bölümünün genel SSH girişinin değerini kopyalayın:

Çıkıştan genel ssh değeri alma

IoT Edge çalışma zamanı durumunu görüntüleme

Bu hızlı başlangıçtaki komutların geri kalanı, cihazda neler olduğunu görebilmeniz için IoT Edge cihazınızın kendisinde gerçekleşir. Sanal makine kullanıyorsanız, ayarladığınız yönetici kullanıcı adını ve dağıtım komutu tarafından çıktısı alınan DNS adını kullanarak bu makineye bağlanın. DNS adını Azure portal sanal makinenizin genel bakış sayfasında da bulabilirsiniz. Sanal makinenize bağlanmak için aşağıdaki komutu kullanın. ve {DNS name} değerlerini kendi değerlerinizle değiştirin{admin username}.

ssh {admin username}@{DNS name}

Sanal makinenize bağlandıktan sonra çalışma zamanının IoT Edge cihazınıza başarıyla yüklendiğini ve yapılandırıldığını doğrulayın.

  1. IoT Edge güvenlik daemon'unun bir sistem hizmeti olarak çalıştığını denetleyin.

    sudo systemctl status iotedge
    

    Sistem hizmeti olarak çalışan IoT Edge daemon'a bakın

    İpucu

    iotedge komutlarını çalıştırmak için yükseltilmiş ayrıcalıklara ihtiyacınız olacaktır. Makinenizdeki oturumu kapattıktan sonra IoT Edge çalışma zamanını yükleyip oturum açtığınızda izinleriniz otomatik olarak güncelleştirilir. O zamana kadar komutların önünde kullanın sudo .

  2. Hizmetle ilgili sorunları gidermeniz gerekirse hizmet günlüklerini alın.

    journalctl -u iotedge
    
  3. IoT Edge cihazınızda çalışan tüm modülleri görüntüleyin. Hizmet ilk kez başlatıldığı için yalnızca edgeAgent modülünün çalıştığını göreceksiniz. edgeAgent modülü varsayılan olarak çalışır ve cihazınıza dağıttığınız ek modüllerin yüklenmesine ve başlatılmasına yardımcı olur.

    sudo iotedge list
    

    Cihazınızda bir modülü görüntüleme

  1. IoT Edge çalıştığını denetleyin. Aşağıdaki komut, IoT Edge çalışıyorsa Tamam durumunu döndürmelidir veya hizmet hataları sağlamalıdır.

    sudo iotedge system status
    

    İpucu

    iotedge komutlarını çalıştırmak için yükseltilmiş ayrıcalıklara ihtiyacınız olacaktır. Makinenizdeki oturumu kapattıktan sonra IoT Edge çalışma zamanını yükleyip oturum açtığınızda izinleriniz otomatik olarak güncelleştirilir. O zamana kadar komutların önünde kullanın sudo .

  2. Hizmetle ilgili sorunları gidermeniz gerekirse hizmet günlüklerini alın.

    sudo iotedge system logs
    
  3. IoT Edge cihazınızda çalışan tüm modülleri görüntüleyin. Hizmet ilk kez başlatıldığı için yalnızca edgeAgent modülünün çalıştığını göreceksiniz. edgeAgent modülü varsayılan olarak çalışır ve cihazınıza dağıttığınız ek modüllerin yüklenmesine ve başlatılmasına yardımcı olur.

    sudo iotedge list
    

Artık IoT Edge cihazınız yapılandırıldı. Bulutta dağıtılan modülleri çalıştırmak için hazır.

Modül dağıtma

Azure IoT Edge cihazınızı, IoT Hub'ına telemetri verileri gönderecek bir modül dağıtmak için buluttan yönetin.

Diyagram - modülü buluttan cihaza dağıtma

Azure IoT Edge'nin önemli özelliklerinden biri, kodu buluttan IoT Edge cihazlarınıza dağıtmaktır. IoT Edge modülleri kapsayıcı olarak uygulanan yürütülebilir paketlerdir. Bu bölümde, Azure Market IoT Edge Modülleri bölümünden önceden oluşturulmuş bir modülü doğrudan Azure IoT Hub dağıtacaksınız.

Bu bölümde dağıttığınız modül bir algılayıcının simülasyonunu oluşturur ve oluşturulan verileri gönderir. Geliştirme ve test için simülasyon verilerini kullanabileceğiniz için IoT Edge kullanmaya başlarken bu modül yararlı bir kod parçasıdır. Bu modülün tam olarak ne yaptığını görmek istiyorsanız, sıcaklık sensörü simülasyonu kaynak kodunu görüntüleyebilirsiniz.

İlk modülünüzü Azure Market dağıtmak üzere Modülleri Ayarlama sihirbazını başlatmak için bu adımları izleyin.

  1. Azure portal oturum açın ve IoT hub'ınıza gidin.

  2. Soldaki menüden Cihaz Yönetimi altında Cihazlar'ı seçin.

  3. Listeden hedef IoT Edge cihazının cihaz kimliğini seçin.

    Yeni bir IoT Edge cihazı oluşturduğunuzda, cihaz Azure portal durum kodunu 417 -- The device's deployment configuration is not set görüntüler. Bu durum normaldir ve cihazın modül dağıtımı almaya hazır olduğu anlamına gelir.

  4. Üst çubukta Modülleri Ayarla'yı seçin.

    Modülleri Ayarla'yı seçmeyi gösteren ekran görüntüsü.

Modül

Sihirbazın ilk adımı, cihazınızda hangi modülleri çalıştırmak istediğinizi seçmektir.

IoT Edge Modüller'in altında Ekle açılan menüsünü açın ve Market Modülü'ne tıklayın.

Ekle açılan menüsünü gösteren ekran görüntüsü.

IoT Edge Modül Marketi'ndeSimulated Temperature Sensor modülü arayın ve seçin. Modül, IoT Edge Modülleri bölümüne istenen çalışma durumuyla eklenir.

Sihirbazın sonraki adımına devam etmek için İleri: Yollar'ı seçin.

Modül eklendikten sonraki adıma devam etme işlemini gösteren ekran görüntüsü.

Yollar

Azure Market modülü eklediğinizde SimulatedTemperatureSensorToIoTHub adlı bir yol otomatik olarak oluşturuldu. Bu yol, sanal sıcaklık modülündeki tüm iletileri IoT Hub gönderir.

Varsayılan yolu kaldırmayı ve sonraki adıma geçmeyi gösteren ekran görüntüsü.

Sonraki: Gözden geçirme ve oluşturma’yı seçin.

Gözden geçir ve oluştur

JSON dosyasını gözden geçirin ve Oluştur'u seçin. JSON dosyası, IoT Edge cihazınıza dağıttığınız tüm modülleri tanımlar. SimulatedTemperatureSensor modülünü ve edgeAgent ve edgeHub adlı iki çalışma zamanı modülünü göreceksiniz.

Not

IoT Edge cihazına yeni bir dağıtım gönderdiğinizde cihazınıza hiçbir şey gönderilmez. Bunun yerine cihaz, IoT Hub'ı düzenli olarak sorgulayarak yeni yönergeler olup olmadığını denetler. Güncelleştirilmiş bir dağıtım bildirimi bulması halinde cihaz yeni dağıtımla ilgili bilgileri kullanarak buluttaki modül görüntülerini çeker ve modülleri yerel ortamda çalıştırmaya başlar. Bu işlem birkaç dakika sürebilir.

Modül dağıtım ayrıntılarını oluşturduktan sonra sihirbaz sizi cihaz ayrıntıları sayfasına döndürür. Modüller sekmesinde dağıtım durumunu görüntüleyin.

Üç modül görmeniz gerekir: $edgeAgent, $edgeHub ve SimulatedTemperatureSensor. Modüllerden biri veya daha fazlası DAĞITIMDA BELIRTİlDİ altında EVET'e sahipse ancak CİhAZIN RAPORLADIĞI bölümünde yoksa, IoT Edge cihazınız bunları başlatmaya devam eder. Birkaç dakika bekleyin ve sayfayı yenileyin.

Dağıtılan modüller listesinde Sıcaklık Sensörü Simülasyonunu gösteren ekran görüntüsü.

Oluşturulan verileri görüntüleme

Bu hızlı başlangıçta, yeni bir IoT Edge cihazı oluşturdunuz ve üzerine IoT Edge çalışma zamanını yüklediniz. Ardından Azure portal kullanarak cihazda değişiklik yapmak zorunda kalmadan cihazda çalışacak bir IoT Edge modülü dağıtabilirsiniz.

Bu durumda, gönderdiğiniz modül daha sonra test için kullanabileceğiniz örnek ortam verileri oluşturur. Simülasyon algılayıcısı hem makineyi hem de makinenin etrafındaki ortamı izler. Örneğin bu sensör bir sunucu odasında, fabrika sahasında veya rüzgar türbininde olabilir. İletide ortam sıcaklığı ve nemi, makine sıcaklığı ve basıncı ile bir zaman damgası bulunur. IoT Edge öğreticileri, analiz için test verileri olarak bu modül tarafından oluşturulan verileri kullanır.

IoT Edge cihazınızda komut istemini yeniden açın veya Azure CLI'den SSH bağlantısı kurun. Buluttan dağıtılan modülün IoT Edge cihazınızda çalıştığından emin olun:

sudo iotedge list

Cihazınızda üç modül görüntüleme

Cihazınızda üç modül görüntüleme

Sıcaklık algılayıcı modülünden gönderilen iletileri görüntüleyin:

sudo iotedge logs SimulatedTemperatureSensor -f

İpucu

IoT Edge komutları, modül adlarına başvururken büyük/küçük harfe duyarlıdır.

Verileri modülünüzden görüntüleme

ayrıca Visual Studio Code için Azure IoT Hub uzantısını kullanarak iletilerin IoT hub'ınıza ulaşmasını izleyebilirsiniz.

Kaynakları temizleme

IoT Edge öğreticilerine devam etmek istiyorsanız bu hızlı başlangıçta kaydettiğiniz ve ayarladığınız cihazı kullanabilirsiniz. Aksi takdirde, ücretlerden kaçınmak için oluşturduğunuz Azure kaynaklarını silebilirsiniz.

Sanal makinenizi ve IoT hub’ınızı yeni bir kaynak grubunda oluşturduysanız, bu grubu ve ilişkili tüm kaynaklarını silebilirsiniz. Tutmak istediğiniz hiçbir şey olmadığından emin olmak için kaynak grubunun içeriğini bir kez daha denetleyin. Grubun tamamını silmek istemiyorsanız, bunun yerine tek tek kaynakları silebilirsiniz.

Önemli

Silinen kaynak grupları geri alınamaz.

IoTEdgeResources grubunu kaldırın. Kaynak grubunun silinmesi birkaç dakika sürebilir.

az group delete --name IoTEdgeResources --yes

Kaynak gruplarının listesini görüntüleyerek kaynak grubunun kaldırıldığını onaylayabilirsiniz.

az group list

Sonraki adımlar

Bu hızlı başlangıçta bir IoT Edge cihazı oluşturdunuz ve cihaza kod dağıtmak için Azure IoT Edge bulut arabirimini kullandınız. Artık ortamı hakkında ham veri üreten bir test cihazınız var.

Sonraki öğreticide Azure portal cihazınızın etkinliğini ve sistem durumunu izlemeyi öğreneceksiniz.