Tek cihazların veya ölçekteki otomatik dağıtımları IoT Edge anlayın
Uygulama hedefi:
IoT Edge 1,1
IoT Edge 1,2
Otomatik dağıtımlar ve katmanlı dağıtım, çok sayıda IoT Edge cihazda modülleri yönetmenize ve yapılandırmanıza yardımcı olur.
Azure IoT Edge, modülleri IoT Edge cihazlarda çalışacak şekilde yapılandırmanın iki yolunu sağlar. İlk yöntem, modülleri cihaz başına temelinde dağıtmaktır. Bir dağıtım bildirimi oluşturun ve ardından ada göre belirli bir cihaza uygularsınız. İkinci yöntem, modülleri bir tanımlı koşullar kümesini karşılayan herhangi bir kayıtlı cihaza otomatik olarak dağıtmaktır. Bir dağıtım bildirimi oluşturup, cihaz ikizi Etiketler temelinde hangi cihazların uygulanacağını tanımlarsınız.
Bu makale, toplu olarak IoT Edge otomatik dağıtımlar olarak adlandırılan cihazları yapılandırma ve izleme konusunda odaklanır. Temel dağıtım adımları aşağıdaki gibidir:
- İşleci bir modül kümesini ve hedef cihazları açıklayan bir dağıtımı tanımlar. Her dağıtımda bu bilgileri yansıtan bir dağıtım bildirimi vardır.
- IoT Hub hizmeti, bunları belirtilen modüllerle yapılandırmak için hedeflenen tüm cihazlarla iletişim kurar.
- IoT Hub hizmeti, IoT Edge cihazlarından durumu alır ve işleç için kullanılabilir hale getirir. Örneğin, bir operatör, bir sınır cihazının ne zaman başarıyla yapılandırılmadığı veya bir modülün çalışma zamanında başarısız olup olmadığını görebilir.
- Herhangi bir zamanda, hedeflenen koşullara uyan yeni IoT Edge cihazlar dağıtım için yapılandırılır.
Bu makalede, bir dağıtımı yapılandırma ve izleme ile ilgili her bir bileşen açıklanmaktadır. Dağıtım oluşturma ve güncelleştirme hakkında yönergeler için bkz. IoT Edge modüllerini ölçekli olarak dağıtma ve izleme.
Dağıtım
IoT Edge otomatik dağıtım, IoT Edge modül görüntülerini hedeflenen bir IoT Edge cihaz kümesi üzerinde örnek olarak çalışacak şekilde atar. Bir IoT Edge dağıtım bildirimini, karşılık gelen başlatma parametrelerine sahip modüllerin listesini içerecek şekilde yapılandırarak işe yarar. Bir dağıtım, tek bir cihaza (cihaz KIMLIĞINE göre) veya bir cihaz grubuna (etiketlere göre) atanabilir. Bir IoT Edge cihaz bir dağıtım bildirimi aldıktan sonra, kapsayıcı görüntülerini ilgili kapsayıcı depolarından indirir ve yükler ve bunları uygun şekilde yapılandırır. Dağıtım oluşturulduktan sonra, bir operatör hedeflenen cihazların doğru yapılandırılıp yapılandırılmadığını görmek için dağıtım durumunu izleyebilir.
Yalnızca IoT Edge cihazları bir dağıtım ile yapılandırılabilir. Dağıtımı alabilmesi için önce aşağıdaki önkoşulların cihazda olması gerekir:
- Temel işletim sistemi
- Moby veya Docker gibi bir kapsayıcı yönetim sistemi
- IoT Edge çalışma zamanının sağlanması
Dağıtım bildirimi
Dağıtım bildirimi, hedeflenen IoT Edge cihazlarda yapılandırılacak modülleri açıklayan bir JSON belgesidir. Gerekli sistem modülleri (özellikle de IoT Edge Aracısı ve IoT Edge hub) dahil olmak üzere tüm modüllerle ilgili yapılandırma meta verilerini içerir.
Her modülün yapılandırma meta verileri şunları içerir:
- Sürüm
- Tür
- Durum (örneğin, çalışıyor veya durduruldu)
- Yeniden başlatma ilkesi
- Görüntü ve kapsayıcı kayıt defteri
- Veri girişi ve çıkışı için rotalar
Modül görüntüsü bir özel kapsayıcı kayıt defterinde depolanıyorsa, IoT Edge Aracısı kayıt defteri kimlik bilgilerini barındırır.
Hedef koşul
Hedef koşul, dağıtımın kullanım ömrü boyunca sürekli olarak değerlendirilir. Gereksinimleri karşılayan tüm yeni cihazlar dahil edilir ve artık olmayan mevcut cihazlar kaldırılır. Hizmet herhangi bir hedef koşul değişikliğini algıladığında dağıtım yeniden etkinleştirilir.
Örneğin, hedef koşul etiketleriyle bir dağıtımınız vardır. ortam = ' prod '. Dağıtımı başlattığınızda 10 üretim cihazı vardır. Modüller bu 10 cihaza başarıyla yüklenir. IoT Edge Aracısı durumu 10 toplam cihaz, 10 başarılı yanıt, 0 hata yanıtı ve 0 bekleyen yanıt gösterir. Artık etiketlere sahip beş cihaz ekleyin. ortam = ' prod '. Hizmet değişikliği algılar ve IoT Edge Aracı durumu 15 toplam cihaz, 10 başarılı yanıt, 0 hata yanıtı ve beş yeni cihaza dağıtırken 5 bekleyen yanıt olur.
Hedef cihazları seçmek için Device ikizi etiketlerindeki herhangi bir Boole koşulunu, Device ikizi bildirilen özellikleri veya DeviceID 'yi kullanın. Koşulu etiketleriyle birlikte kullanmak istiyorsanız, {} Device ikizi 'ın özellikler ile aynı düzey altında "Etiketler": bölümüne eklemeniz gerekir. Cihaz ikizi Etiketler hakkında daha fazla bilgi edinin
Hedef koşulları örnekleri:
- DeviceID = ' linuxprod1 '
- Tags. Environment = ' prod '
- Tags. Environment = ' prod ' ve Tags. Location = ' westus '
- Tags. Environment = ' prod ' veya Tags. Location = ' westus '
- Tags. operator = ' John ' ve Tags. Environment = ' prod ' ve NOT DeviceID = ' linuxprod1 '
- Properties. bildirilen. devicemodel = ' 4000x '
Bir hedef koşul oluştururken bu kısıtlamaları göz önünde bulundurun:
- Device ikizi 'da, yalnızca etiketleri, bildirilen özellikleri veya DeviceID 'yi kullanarak bir hedef koşul oluşturabilirsiniz.
- Hedef koşulun herhangi bir bölümünde çift tırnak işaretlerine izin verilmez. Tek tırnakları kullanın.
- Tek tırnak işaretleri, hedef koşulun değerlerini temsil eder. Bu nedenle, cihaz adının bir parçası ise, tek tırnağa başka bir teklifle kaçış yapmanız gerekir. Örneğin, adlı bir cihazı hedeflemek için
operator'sDeviceyazındeviceId='operator''sDevice'. - Hedef koşul değerlerinde sayılar, harfler ve aşağıdaki karakterlere izin verilir:
“()<>@,;:\\"/?={} \t\n\r. - Hedef koşul anahtarlarında Şu karakterlere izin verilmez:
/;.
Öncelik
Öncelik, bir dağıtımın, diğer dağıtımlara göre hedeflenen bir cihaza uygulanıp uygulanmayacağını tanımlar. Dağıtım önceliği, daha büyük olan ve daha yüksek önceliğe sahip pozitif bir tamsayıdır. IoT Edge bir cihaz birden fazla dağıtım tarafından hedeflenirse, en yüksek önceliğe sahip dağıtım geçerlidir. Düşük önceliklere sahip dağıtımlar uygulanmaz ve birleştirilirler. Bir cihaz eşit önceliğe sahip iki veya daha fazla dağıtıma hedefleniyorsa, en son oluşturulan dağıtım (oluşturma zaman damgasıyla belirlenir) geçerlidir.
Etiketler
Etiketler, dağıtımları filtrelemek ve gruplamak için kullanabileceğiniz dize anahtar/değer çiftleridir. Bir dağıtımda birden fazla etiket olabilir. Etiketler isteğe bağlıdır ve IoT Edge cihazlarının gerçek yapılandırmasını etkilemez.
Ölçümler
Varsayılan olarak, tüm dağıtımlar dört ölçüm üzerinde rapor alır:
- Hedeflenen , dağıtım hedefleme durumuyla eşleşen IoT Edge cihazları gösterir.
- Uygulanan , daha yüksek öncelikli bir dağıtım tarafından hedeflenilmemiş hedeflenen IoT Edge cihazları gösterir.
- Raporlama başarısı , modüllerin başarıyla dağıtıldığını bildiren IoT Edge cihazları gösterir.
- Raporlama hatası , bir veya daha fazla modülün başarıyla dağıtılmadığını bildiren IoT Edge cihazları gösterir. Hatayı daha fazla araştırmak için, bu cihazlara uzaktan bağlanın ve günlük dosyalarını görüntüleyin.
Ayrıca, dağıtımı izlemeye ve yönetmeye yardımcı olması için kendi özel ölçümlerinizi de tanımlayabilirsiniz.
Ölçümler, cihazların bir dağıtım yapılandırması uygulamanın bir sonucu olarak yeniden rapor edebileceği çeşitli durumların Özet sayısını sağlar. Ölçümler, ikizi bildirilen özelliklerini( Lastdesiredstatus veya lastconnecttime gibi) sorgulayabilirler. Örneğin:
SELECT deviceId FROM devices
WHERE properties.reported.lastDesiredStatus.code = 200
Kendi ölçümlerinizi eklemek isteğe bağlıdır ve IoT Edge cihazlarının gerçek yapılandırmasını etkilemez.
Katmanlı dağıtım
Katmanlı dağıtımlar, oluşturulması gereken benzersiz dağıtım sayısını azaltmak için birlikte birleştirilebilecek otomatik dağıtımlardır. Katmanlı dağıtımlar, aynı modüllerin birçok otomatik dağıtımda farklı birleşimlerde yeniden kullanıldığı senaryolarda faydalıdır.
Katmanlı dağıtımlar, herhangi bir otomatik dağıtımla aynı temel bileşenlere sahiptir. Cihazları, cihaz ikklerindeki etiketlere göre hedefleyin ve Etiketler, ölçümler ve durum raporlama etrafında aynı işlevleri sağlar. Katmanlı dağıtımlar da bunlara atanmış öncelikler vardır, ancak bir cihaza hangi dağıtımın uygulanacağını belirleyen önceliği kullanmak yerine, bir cihaza birden çok dağıtımın nasıl derecelendirilir olduğunu belirler. Örneğin, iki katmanlı dağıtımda aynı ada sahip bir modül veya bir yol varsa, düşük önceliğin üzerine yazıldığında, yüksek önceliğe sahip katmanlı dağıtım uygulanır.
Sistem çalışma zamanı modülleri, edgeAgent ve edgeHub, katmanlı dağıtımın bir parçası olarak yapılandırılmamıştır. Katmanlı IoT Edge hedeflenen tüm cihazlarında önce standart bir otomatik dağıtım uygulanması gerekir. Otomatik dağıtım, katmanlı dağıtımların eklenebilirsiniz tabanını sağlar.
Bir IoT Edge bir ve yalnızca bir standart otomatik dağıtım uygulayabilir, ancak birden çok katmanlı otomatik dağıtım uygulayabilir. Bir cihazı hedef alan katmanlı dağıtımlar, o cihaz için otomatik dağıtımdan daha yüksek önceliğe sahip olmalıdır.
Örneğin, binalarını yöneten bir şirketin aşağıdaki senaryosunu düşünün. Güvenlik kameralarından IoT Edge algılayıcılardan ve asansörlerden veri toplamak için farklı modüller geliştirdiler. Ancak, tüm binalarında üç modül de kullanılabilir. Standart otomatik dağıtımlarla şirketin, binalarının ihtiyacı olan tüm modül birleşimleri için ayrı dağıtımlar oluşturması gerekiyor.

Ancak, şirket katmanlı otomatik dağıtımlara geçiş yaptıklarında, yönetecek daha az dağıtıma sahip olan binalarında aynı modül birleşimlerini oluştur olduklarını bulur. Her modülün kendi katmanlı dağıtımı vardır ve cihaz etiketleri her bir binaya hangi modüllerin ekli olduğunu tespit eder.

Modül ikizi yapılandırması
Katmanlı dağıtımlarla birlikte çalışıyorsanız, kasıtlı olarak veya başka bir şekilde, cihazı hedef alan aynı modüle sahip iki dağıtımınız olabilir. Bu gibi durumlarda, yüksek öncelikli dağıtımın modül ikizini üzerine yazması veya buna eklemesi gerekip gerekip gerek istemediğinize karar veebilirsiniz. Örneğin, aynı modülü 100 farklı cihaza uygulanan bir dağıtımınız olabilir. Ancak bu cihazlardan 10'ları güvenli tesislerdedir ve ara sunucularla iletişim kurmak için ek yapılandırmaya ihtiyaç vardır. Bu 10 cihazı temel dağıtımdan mevcut modül ikizi bilgileri üzerine yazmadan güvenli bir şekilde iletişim kurmasına olanak sağlayan modül ikizi özellikleri eklemek için katmanlı dağıtım kullanabilirsiniz.
Dağıtım bildiriminde modül ikizi istenen özelliklerini ekebilirsiniz. Standart dağıtımda modül ikizin properties.desired bölümüne özellikler eklersiniz; katmanlı bir dağıtımda istenen özelliklerin yeni bir alt kümesini bildirebilirsiniz.
Örneğin, standart bir dağıtımda, simülasyon sıcaklık sensörü modülünü 5 saniyelik aralıklarla veri göndermesini söylemek için aşağıdaki istenen özelliklerle ekleyebilirsiniz:
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 5
}
}
Aynı cihazların bir veya hepsini hedef alan katmanlı bir dağıtımda, simülasyon algılayıcıya 1000 ileti göndermesini ve ardından durdurmayı söyleyen bir özellik eklersiniz. Mevcut özelliklerin üzerine yazmak istemiyorsanız, istenen özellikler içinde yeni özelliği içeren adlı yeni layeredProperties bir bölüm oluşturun:
"SimulatedTemperatureSensor": {
"properties.desired.layeredProperties": {
"StopAfterCount": 1000
}
}
Her iki dağıtımın da uygulandığı bir cihaz, simülasyon sıcaklık sensörü için modül ikizini aşağıdaki özellikleri yansıtacak:
"properties": {
"desired": {
"SendData": true,
"SendInterval": 5,
"layeredProperties": {
"StopAfterCount": 1000
}
}
}
Katmanlı dağıtımda modül ikizin alanını ayarlamış olursanız, daha düşük öncelikli dağıtımlarda bu modül için istenen properties.desired özelliklerin üzerine yazacak.
Aşamalı rollout
Aşamalı dağıtım, operatörün değişiklikleri geniş kapsamlı bir dizi cihaza dağıtarak genel bir IoT Edge işlemidir. Burada amaç, geniş ölçekli hataya neden olan değişiklikler yapma riskini azaltmak için kademeli olarak değişiklik yapmaktır. Otomatik dağıtımlar, bir cihaz filosunda aşamalı dağıtımların IoT Edge yardımcı olur.
Aşamalı bir rollout aşağıdaki aşamalarda ve adımlarda yürütülür:
- Cihaz sağlama ve gibi bir IoT Edge cihaz ikizi etiketi ayarerek bu cihazların test ortamını
tag.environment='test'kurma. Test ortamı, dağıtımın sonunda hedefleycene üretim ortamını yansıtması gerekir. - İstenen modülleri ve yapılandırmaları içeren bir dağıtım oluşturun. Hedefleme koşulu, cihaz ortamında test IoT Edge hedeflemeli.
- Test ortamında yeni modül yapılandırmasını doğrulama.
- Hedef koşula yeni bir etiket ekleyerek dağıtımı üretim IoT Edge alt kümesini içerecek şekilde güncelleştirin. Ayrıca, dağıtım için önceliğin şu anda bu cihazlara hedeflenen diğer dağıtımlardan daha yüksek olduğundan emin olun
- Dağıtım durumunu görüntüerek hedeflenen IoT Cihazlarda dağıtımın başarılı olduğunu doğrulayın.
- Kalan tüm üretim ve cihazları hedeflemek için IoT Edge güncelleştirin.
Geri alma
Hatalar veya yanlış yapılandırmalar alırsanız dağıtımlar geri alınabilirsiniz. Dağıtım, bir IoT Edge cihazı için mutlak modül yapılandırmasını tanımladığı için, hedef tüm modülleri kaldırmak olsa bile aynı cihaza daha düşük bir öncelikle ek bir dağıtım hedef olmalıdır.
Dağıtım silindi, modülleri hedeflenen cihazlardan kaldırmaz. Boş bir dağıtım olsa bile cihazlar için yeni bir yapılandırma tanımlayan başka bir dağıtım olması gerekir.
Aşağıdaki sırayla geri alma işlemleri gerçekleştirin:
- İkinci bir dağıtımın aynı cihaz kümesine de hedefli olduğunu onaylayın. Geri almanın amacı tüm modülleri kaldırmaksa, ikinci dağıtım hiçbir modül içermemeli.
- Cihazların artık hedefleme koşullarını karşılaması için geri almak istediğiniz dağıtımın hedef koşul ifadesini değiştirme veya kaldırma.
- Dağıtım durumunu görüntüerek geri almanın başarılı olduğunu doğrulayın.
- Geri alındı dağıtımı artık geri alınmış cihazlar için durumu göstermemektedir.
- İkinci dağıtım şimdi geri alınmış cihazlar için dağıtım durumunu içermeli.
Sonraki adımlar
- Dağıtım oluşturma, güncelleştirme veya silme adımlarını büyük ölçekteki modülleri dağıtma ve IoT Edge izleme adımlarını izleyin.
- çalışma zamanı ve IoT Edge modülü gibi diğer IoT Edge kavramlar IoT Edge öğrenin.