Hızlı Başlangıç: Sanal Linux IoT Edge ilk modülünü dağıtma

Uygulama hedefi:  Evet simgesi IoT Edge 1,1 diğer sürümler: IoT Edge 1,2

Uygulama hedefi:  Evet simgesi IoT Edge 1,2 diğer sürümler: IoT Edge 1,1

Kapsayıcılı Azure IoT Edge sanal Linux sanal makine cihazına dağıtarak bu hızlı başlangıçtaki IoT Edge test edin. IoT Edge, iş yüklerinizi edge'e daha fazla gönderebilirsiniz. Bu hızlı başlangıçta, IoT Edge cihazınız için bir Azure sanal makinesi kullanmanızı öneririz. Bu sayede hızlı bir şekilde bir test makinesi oluşturabilir ve bitirdikten sonra silebilirsiniz.

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ın yüklemesini ve başlatması.
  • 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ıç, bir linux sanal makinesi oluşturmak için bir linux sanal makinesi oluşturma IoT Edge gösterir. Ardından modülünü cihazdan cihazınıza Azure portal dağıtabilirsiniz. Bu hızlı başlangıçta kullanılan modül sıcaklık, nem ve basınç verileri oluşturan bir simülasyon algılayıcıdır. Diğer Azure IoT Edge öğreticiler, iş içgörüleri için simülasyon verilerini analiz etmek için ek modüller dağıtarak burada yapacakları işler üzerinde çalışır.

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

Önkoşullar

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

  • Azure Cloud Shell'Da Bash ortamını kullanın.

    Cloud Shell’i yeni bir pencerede başlatma

  • Dilerseniz CLI başvuru komutlarını çalıştırmak için Azure CLI’yi yükleyebilirsiniz.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Ek oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantılarını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırı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ı kullanıyoruz.

    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şlatabilirsiniz.

Diyagram - Bulutta IoT hub'ı oluşturma

IoT Hub’ın ücretsiz düzeyi bu hızlı başlangıç için kullanılabilir. Daha önce IoT Hub zaten bir hub oluşturduysanız bu IoT hub'ı kullanabilirsiniz.

Aşağıdaki kod, IoTEdgeResources kaynak grubunda ücretsiz bir F1 hub'ı oluşturur. yerine {hub_name} IoT hub'ını benzersiz bir ad yazın. Bir hesap oluşturmak birkaç dakika IoT Hub.

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. Uygulama adının kullanılabilir IoT Hub hata alırsanız, başka birinin zaten bu adla 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 kimliğini IoT Hub kaydetme

IoT hub'ınız IoT Edge için 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.

Bu IoT Edge tipik IoT cihazlardan farklı şekilde davranarak yönetilene kadar, bu kimliği bayrağına sahip bir IoT Edge için olarak --edge-enabled bildirebilirsiniz.

  1. Hub'Azure Cloud Shell myEdgeDevice adlı bir cihaz oluşturmak için aşağıdaki komutu girin.

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

    iothubowner ilke anahtarları hakkında bir hata alırsanız, Cloud Shell azure-iot uzantısının en son sürümünü çalıştır olduğundan emin olun.

  2. Fiziksel cihazınızı cihaz kimliğiyle bağlantılandıran cihazınızın bağlantı dizesini IoT Hub. IoT hub'nizin adını, cihazınızın adını ve ardından ikisi arasındaki bağlantıların kimliğini doğrularken paylaşılan anahtarı içerir. Bu bağlantı dizesine bir sonraki bölümde, cihazınızı ayar IoT Edge 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 yapılandırma

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

Diyagram - Cihazda çalışma zamanı 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 aracıyı başlatarak cihaz önyüklemesi ve önyüklemesi IoT Edge başlar. IoT Edge aracı, IoT Edge hub'ı dahil olmak üzere IoT Edge dağıtımını ve IoT Edge izlenmesini kolaylaştırır. IoT Edge hub'ı, IoT Edge cihaz ile cihaz arasındaki modüllerin arasındaki iletişimi IoT Hub.

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

IoT Edge dağıtma

Bu bölümde yeni bir Azure Resource Manager makine oluşturmak ve yeni çalışma zamanı yüklemek için IoT Edge şablonu kullanılır. Bunun yerine kendi Linux cihazınızı kullanmak için Tek bir LinuxIoT Edge cihazı el ile sağlama altında yer alan yükleme adımlarını takip edebilirsiniz. Ardından bu hızlı başlanılana geri dönebilirsiniz.

Önceden oluşturulmuş iotedge-vm-deploy şablonuna göre IoT Edge cihazınızı oluşturmak için aşağıdaki CLI komutunu kullanın.

  • Bash veya Cloud Shell için, aşağıdaki komutu bir metin düzenleyicisine kopyalayın, yer tutucu metnini bilgileriyle değiştirin ve sonra bash veya Cloud Shell kopyalayın:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://aka.ms/iotedge-vm-deploy" \
    --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 ardından yer tutucu metnini kendi bilgileriyle değiştirin:

    az deployment group create `
    --resource-group IoTEdgeResources `
    --template-uri "https://aka.ms/iotedge-vm-deploy" `
    --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 şablonuna göre IoT Edge cihazınızı oluşturmak için aşağıdaki CLI komutunu kullanın.

  • Bash veya Cloud Shell için, aşağıdaki komutu bir metin düzenleyicisine kopyalayın, yer tutucu metnini bilgileriyle değiştirin ve sonra bash veya Cloud Shell kopyalayın:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.2.0/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 ardından yer tutucu metnini kendi bilgileriyle değiştirin:

    az deployment group create `
    --resource-group IoTEdgeResources `
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.2.0/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
kaynak grubu Kaynakların oluşturulacak kaynak grubu. Bu makale boyunca kullanmakta olduğu varsayılan IoTEdgeResources'ı kullanın veya aboneliğinize mevcut bir kaynak grubunun adını girin.
template-uri Kullanmakta Resource Manager şablonuna bir işaretçi.
dnsLabelPrefix Sanal makinenin ana bilgisayar adını oluşturmak için kullanılacak bir dize. Yer tutucu metnini sanal makineniz için bir adla 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ı girin.
deviceConnectionString IoT Hub'daki cihaz kimliğinden gelen bağlantı dizesi, sanal makinede IoT Edge yapılandırmak için kullanılır. Bu parametrenin içindeki CLI komutu bağlantı dizesini alır. Yer tutucu metnini IoT hub' adınızla değiştirin.
authenticationType Yönetici hesabı için kimlik doğrulama yöntemi. Bu hızlı başlangıçta parola kimlik doğrulaması kullanılır, ancak bu parametreyi sshPublicKey olarak da ayarlayın.
adminPasswordOrKey Yönetici hesabının SSH anahtarının parolası veya değeri. Yer tutucu metnini güvenli bir parolayla değiştirin. Parolanız en az 12 karakter uzunluğunda olmalı ve şu dört karakterden üçünü içermelidir: 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 bir çıkış amalısınız. Outputs bölümünün genel SSH girişinin değerini kopyalayın:

Çıktıdan genel ssh değerini alma

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

Bu hızlı başlangıçtaki komutların geri kalanı, IoT Edge cihazda neler olduğunu görmek için cihazınızın kendisinde yer alır. Bir sanal makine kullanıyorsanız, bu makineye şimdi ayar istediğiniz yönetici kullanıcı adını ve dağıtım komutuyla çıktı olarak çıktısını alan DNS adını kullanarak bağlanabilirsiniz. DNS adını sanal makinenizin genel bakış sayfasında da bulabilirsiniz Azure portal. Sanal makinenize bağlanmak için aşağıdaki komutu kullanın. ve {admin username} değerlerini {DNS name} kendi değerleriniz ile değiştirin.

ssh {admin username}@{DNS name}

Sanal makinenize bağlandıktan sonra çalışma zamanının başarıyla yük devredilen ve IoT Edge doğrulayın.

  1. Güvenlik daemon' IoT Edge sistem hizmeti olarak çalıştırılıp çalışmay olduğunu kontrol edin.

    sudo systemctl status iotedge
    

    Sistem IoT Edge çalışan bir 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 sudo komutlarının önünde kullanın.

  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ğıtarak ek modülleri yüklemenize ve başlatmanıza yardımcı olur.

    sudo iotedge list
    

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

  1. IoT Edge olup IoT Edge kontrol edin. Aşağıdaki komut, çalışma durumunda Tamam IoT Edge veya herhangi bir hizmet hatası sağlansa.

    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 sudo komutlarının önünde kullanın.

  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ğıtarak ek modülleri yüklemenize ve başlatmanıza 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 - buluttan cihaza modül dağıtma

Bu özelliğin en önemli Azure IoT Edge biri, buluttan IoT Edge cihazlarınıza kod dağıtmaktır. IoT Edge modüller, kapsayıcı olarak uygulanan yürütülebilir paketlerdir. Bu bölümde, doğrudan IoT Edge Modüller bölümünden önceden Azure Market bir modül dağıtacak Azure IoT Hub.

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

Modül Ayarlama sihirbazını başlatmak için bu adımları izleyin ve modülden ilk modülü Azure Market.

  1. Azure portal IoT hub'ınıza gidin.

  2. Sol menüden Otomatik Yükleme'nin altında Cihaz Yönetimi seçeneğini IoT Edge.

  3. Cihaz listesinden hedef cihazın cihaz kimliğini seçin.

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

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

    Modülleri Ayarla seçeneğini gösteren ekran görüntüsü.

Modül

Sihirbazın ilk adımı, cihazda çalıştırmak istediğiniz modülleri seçmektir.

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

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

Modül IoT Edge'da modülü için arama ve Simulated Temperature Sensor seçme. Modül, istenen çalışma IoT Edge modüller bölümüne eklenir.

EdgeHub Ayarlar edgeAgent modüllerinin ayarlarını açmak için Çalışma Zamanı Modülü'ne tıklayın. Bu ayarlar bölümü, ortam değişkenleri ekleyerek veya oluşturma seçeneklerini değiştirerek çalışma zamanı modüllerini yönetebilirsiniz.

Hem edgeHub hem de edgeAgent modülleri için Görüntü alanını 1.2 sürüm etiketini kullanmak üzere güncelleştirin. Örnek:

  • mcr.microsoft.com/azureiotedge-hub:1.2
  • mcr.microsoft.com/azureiotedge-agent:1.2

Değişikliklerinizi çalışma zamanı modüllerine uygulamak için Kaydet'i seçin.

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

Modül eklendikten sonraki adıma devam eden adımı gösteren ekran görüntüsü.

Yollar

Yollar sekmesinde varsayılan yol olan yolunu kaldırın ve ardından Sonraki: Gözden geçir ve oluştur'a seçerek sihirbazın sonraki adımına geçin.

Not

Yollar ad ve değer çiftleri kullanılarak oluşturulur. Bu sayfada iki yol görüyor gerekir. Varsayılan yol olan yolu, tüm iletileri IoT Hub (olarak adlandırılan) $upstream gönderir. İkinci bir yol olan SimulatedTemperatureSensorToIoTHub, modülü Azure Market. Bu yol, sanal sıcaklık modülünden gelen tüm iletileri IoT Hub. Bu durumda yedekli olduğundan varsayılan yolu silebilirsiniz.

Varsayılan yolu kaldırmayı ve sonraki adıma taşımayı gösteren ekran görüntüsü.

Gözden geçir ve oluştur

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

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şturdukta sihirbaz sizi cihaz ayrıntıları sayfasına geri döndürür. Dağıtım durumunu Modüller sekmesinde görüntüleyin.

Üç modül görüyor gerekir: $edgeAgent, $edgeHub ve SimulatedTemperatureSensor. Modüllerden biri veya daha fazlası, YALNIZDA BELIRTİLE ALTıNDA EVET'e sahipse ancak CIHAZ TARAFıNDAN BILDIRILEN IoT Edge hala başlatıyorsa. Birkaç dakika bekleyin ve ardından 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 değişiklik yapmak IoT Edge çalıştırmak için bir IoT Edge modülünü dağıtmak için bu modülü kullandınız.

Bu durumda, daha sonra test etmek için kullanabileceğiniz örnek ortam verileri oluşturacağız. Simülasyon algılayıcısı hem bir makineyi hem de makinenin çevresindeki ortamı izliyor. Ö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. Bu 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 sensörü modülünden gönderilen iletileri görüntüleme:

sudo iotedge logs SimulatedTemperatureSensor -f

İpucu

IoT Edge komutları modül adlarını ifade ederken büyük/büyük/büyük harfe duyarlıdır.

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

Ayrıca IoT hub'ınıza gelen iletileri izlemek için Azure IoT Hub uzantısını Visual Studio Code.

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, ücret ödememek 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 bir şey olmadığını kontrol etmek için kaynak grubunun içeriğini bir kez daha kontrol edin. Grubun tamamını silmek istemiyorsanız, bunun yerine tek tek kaynakları silebilirsiniz.

Önemli

Silinen kaynak grupları geri alınamaz.

IoTEdgeResources grubunu kaldırın. Bir kaynak grubunun silmesi birkaç dakika sürebilir.

az group delete --name IoTEdgeResources --yes

Kaynak gruplarının listesini görüntüerek kaynak grubunun kaldırılmış olduğunu onaylayın.

az group list

Sonraki adımlar

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

Sonraki öğreticide, cihazınızın etkinlik ve sistem durumunu izleme hakkında bilgi Azure portal.