Aracılığıyla paylaş


Azure CLI’yı kullanarak otomatik IoT cihazı ve modül yönetimi

Azure IoT Hub'da otomatik cihaz yönetimi, büyük cihaz filolarını yönetmeye yönelik yinelenen ve karmaşık görevlerin çoğunu otomatikleştirir. Otomatik cihaz yönetimi ile, özelliklerine göre bir cihaz kümesini hedefleyebilir, istenen yapılandırmayı tanımlayabilir ve ardından kapsam dahilindeki cihazları IoT Hub'ın güncelleştirmesine izin verebilirsiniz. Bu güncelleştirme, tamamlama ve uyumluluğu özetlemenizi, birleştirme ve çakışmaları işlemenizi ve aşamalı bir yaklaşımda yapılandırmaları dağıtmanızı sağlayan otomatik bir cihaz yapılandırması veya otomatik modül yapılandırması kullanılarak gerçekleştirilir.

Not

Bu makalede açıklanan özellikler yalnızca IoT Hub'ın standart katmanında kullanılabilir. Temel ve standart/ücretsiz IoT Hub katmanları hakkında daha fazla bilgi için bkz. Çözümünüz için doğru IoT Hub katmanını seçme.

Otomatik cihaz yönetimi, bir cihaz ikizleri veya modül ikizleri kümesini istenen özelliklerle güncelleştirerek ve ikiz tarafından bildirilen özellikleri temel alan bir özet bildirerek çalışır. Üç bölümü olan yapılandırma adlı yeni bir sınıf ve JSON belgesi tanıtır:

  • Hedef koşul , güncelleştirilecek cihaz ikizlerinin veya modül ikizlerinin kapsamını tanımlar. Hedef koşul, cihaz ikizi etiketleri ve/veya bildirilen özelliklerde sorgu olarak belirtilir.

  • Hedef içerik, hedeflenen cihaz ikizlerine veya modül ikizlerine eklenecek veya güncelleştirilecek istenen özellikleri tanımlar. İçerik, değiştirilmesi istenen özelliklerin bölümünün yolunu içerir.

  • Ölçümler Başarı, Devam Ediyor ve Hata gibi çeşitli yapılandırma durumlarının özet sayılarını tanımlar. Özel ölçümler, ikiz tarafından bildirilen özelliklerde sorgu olarak belirtilir. Sistem ölçümleri, hedeflenen ikiz sayısı ve başarıyla güncelleştirilen ikiz sayısı gibi ikiz güncelleştirme durumunu ölçen varsayılan ölçümlerdir.

Otomatik yapılandırmalar, yapılandırma oluşturulduktan kısa süre sonra ve ardından beş dakikalık aralıklarla ilk kez çalıştırılır. Ölçüm sorguları, otomatik yapılandırma her çalıştığında çalışır. Standart katman IoT hub'larında en fazla 100 otomatik yapılandırma desteklenir; ücretsiz katman IoT hub'larında on. Azaltma sınırları da geçerlidir. Daha fazla bilgi edinmek için bkz . Kotalar ve Azaltma.

CLI önkoşulları

  • Azure aboneliğinizde bir IoT hub'ı. Henüz bir hub'ına sahip değilseniz IoT hub'ı oluşturma makalesindeki adımları izleyebilirsiniz.

  • Ortamınızda Azure CLI . Azure CLI sürümünüz en az 2.0.70 veya üzeri olmalıdır. Doğrulamak için az –-version kullanın. Bu sürüm, az uzantı komutlarını destekler ve Knack komut çerçevesini kullanıma sunar.

  • Azure CLI için IoT uzantısı.

Not

Bu makalede Azure IoT uzantısının adlı azure-ioten yeni sürümü kullanılır. Eski sürüm olarak adlandırılır azure-cli-iot-ext. Bir kerede yalnızca bir sürümünüz yüklü olmalıdır. Şu anda yüklü olan uzantıları doğrulamak için komutunu az extension list kullanabilirsiniz.

Uzantının eski sürümünü kaldırmak için kullanın az extension remove --name azure-cli-iot-ext .

Uzantının yeni sürümünü eklemek için kullanın az extension add --name azure-iot .

Hangi uzantıları yüklediğinizi görmek için kullanın az extension list.

İkiz uygulama

Otomatik cihaz yapılandırmaları, bulut ile cihazlar arasındaki durumu eşitlemek için cihaz ikizlerinin kullanılmasını gerektirir. Daha fazla bilgi için bkz. IoT Hub'ındaki cihaz ikizlerini kavrama ve kullanma.

Otomatik modül yapılandırmaları, bulut ve modüller arasındaki durumu eşitlemek için modül ikizlerinin kullanılmasını gerektirir. Daha fazla bilgi için bkz . IoT Hub'da modül ikizlerini anlama ve kullanma.

İkizleri hedeflemek için etiketleri kullanma

Yapılandırma oluşturmadan önce, hangi cihazları veya modülleri etkilemek istediğinizi belirtmeniz gerekir. Azure IoT Hub cihazları ve cihaz ikizindeki etiketleri kullanarak tanımlar ve modül ikizindeki etiketleri kullanarak modülleri tanımlar. Her cihazın veya modülün birden çok etiketi olabilir ve bunları çözümünüz için anlamlı olacak şekilde tanımlayabilirsiniz. Örneğin, cihazları farklı konumlarda yönetiyorsanız bir cihaz ikizi için aşağıdaki etiketleri ekleyin:

"tags": {
	"location": {
		"state": "Washington",
		"city": "Tacoma"
    }
},

Hedef içeriği ve ölçümleri tanımlama

Hedef içerik ve ölçüm sorguları, cihaz ikizi veya modül ikizinin ölçülecek özellikleri ayarlamasını ve bildirmesini istediğiniz özellikleri açıklayan JSON belgeleri olarak belirtilir. Azure CLI kullanarak otomatik yapılandırma oluşturmak için hedef içeriği ve ölçümleri .txt dosyaları olarak yerel olarak kaydedin. Yapılandırmayı cihazınıza uygulamak için komutunu çalıştırdığınızda sonraki bir bölümde dosya yollarını kullanırsınız.

Otomatik cihaz yapılandırması için temel bir hedef içerik örneği aşağıda verilmişti:

{
  "content": {
    "deviceContent": {
      "properties.desired.chillerWaterSettings": {
        "temperature": 38,
        "pressure": 78
      }
    }
}

Otomatik modül yapılandırmaları çok benzer şekilde davranır, ancak yerine deviceContentöğesini hedeflersinizmoduleContent.

{
  "content": {
    "moduleContent": {
      "properties.desired.chillerWaterSettings": {
        "temperature": 38,
        "pressure": 78
      }
    }
}

Ölçüm sorgularının örnekleri aşağıda verilmiştir:

{
  "queries": {
    "Compliant": "select deviceId from devices where configurations.[[chillerdevicesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='current'",
    "Error": "select deviceId from devices where configurations.[[chillerdevicesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='error'",
    "Pending": "select deviceId from devices where configurations.[[chillerdevicesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='pending'"
  }
}

Modüller için ölçüm sorguları da cihazlara yönelik sorgulara benzer, ancak içinden devices.modulesöğesini moduleId seçersiniz. Örneğin:

{
  "queries": {
    "Compliant": "select deviceId, moduleId from devices.module where configurations.[[chillermodulesettingswashington]].status = 'Applied' AND properties.reported.chillerWaterSettings.status='current'"
  }
}

Yapılandırma oluşturma

Standart katman IoT hub'larında en fazla 100 otomatik yapılandırma oluşturabilirsiniz; ücretsiz katman IoT hub'larında on. Daha fazla bilgi edinmek için bkz . Kotalar ve Azaltma.

Hedef içerik ve ölçümlerden oluşan bir yapılandırma oluşturarak hedef cihazları yapılandırabilirsiniz. Yapılandırma oluşturmak için aşağıdaki komutu kullanın:

   az iot hub configuration create --config-id [configuration id] \
     --labels [labels] --content [file path] --hub-name [hub name] \
     --target-condition [target query] --priority [int] \
     --metrics [metric queries]
  • --config-id - IoT hub'ında oluşturulacak yapılandırmanın adı. Yapılandırmanıza en fazla 128 karakter uzunluğunda benzersiz bir ad verin. Küçük harflere ve aşağıdaki özel karakterlere izin verilir: -+%_*!'. Boşluk kullanılamaz.

  • --etiketler - Yapılandırmanızı izlemeye yardımcı olmak için etiketler ekleyin. Etiketler, dağıtımınızı açıklayan Ad, Değer çiftleridir. Örneğin HostPlatform, Linux veya Version, 3.0.1

  • --content - İkiz istenen özellikler olarak ayarlanacak hedef içeriğin satır içi JSON veya dosya yolu.

  • --hub-name - Yapılandırmanın oluşturulacağı IoT hub'ının adı. Hub geçerli abonelikte olmalıdır. komutuyla istediğiniz aboneliğe geçin az account set -s [subscription name]

  • --target-condition - Bu yapılandırmayla hangi cihazların veya modüllerin hedefleneceğini belirlemek için bir hedef koşul girin. Otomatik cihaz yapılandırması için koşul, cihaz ikizi etiketlerini veya cihaz ikizi istenen özelliklerini temel alır ve ifade biçimiyle eşleşmelidir. Örneğin, tags.environment='test' veya properties.desired.devicemodel='4000x'. Otomatik modül yapılandırması için koşul, modül ikizi etiketlerini veya modül ikizinin istenen özelliklerini temel alır.. Örneğin, from devices.modules where tags.environment='test' veya from devices.modules where properties.reported.chillerProperties.model='4000x'.

  • --priority - Pozitif bir tamsayı. İki veya daha fazla yapılandırmanın aynı cihaz veya modülde hedeflendiği durumlarda, Öncelik için en yüksek sayısal değere sahip yapılandırma uygulanır.

  • --metrics - Ölçüm sorgularının dosya yolu. Ölçümler, yapılandırma içeriği uygulandıktan sonra bir cihazın veya modülün geri bildirebileceği çeşitli durumların özet sayısını sağlar. Örneğin, bekleyen ayar değişiklikleri için bir ölçüm, hatalara yönelik bir ölçüm ve başarılı ayar değişiklikleri için bir ölçüm oluşturabilirsiniz.

Yapılandırmayı izleme

Yapılandırmanın içeriğini görüntülemek için aşağıdaki komutu kullanın:

az iot hub configuration show --config-id [configuration id] \
  --hub-name [hub name]
  • --config-id - IoT hub'ında var olan yapılandırmanın adı.

  • --hub-name - Yapılandırmanın bulunduğu IoT hub'ının adı. Hub geçerli abonelikte olmalıdır. komutuyla istediğiniz aboneliğe geçin az account set -s [subscription name]

Komut penceresinde yapılandırmayı inceleyin. metrics özelliği, her hub tarafından değerlendirilen her ölçüm için bir sayı listeler:

  • targetedCount - IoT Hub'da hedefleme koşuluyla eşleşen cihaz ikizlerinin veya modül ikizlerinin sayısını belirten bir sistem ölçümü.

  • appliedCount - Sistem ölçümü, hedef içeriği uygulanmış olan cihaz veya modüllerin sayısını belirtir.

  • Özel ölçümünüzün - Tanımladığınız tüm ölçümler kullanıcı ölçümleridir.

Aşağıdaki komutu kullanarak ölçümlerin her biri için cihaz kimliklerinin, modül kimliklerinin veya nesnelerin listesini gösterebilirsiniz:

az iot hub configuration show-metric --config-id [configuration id] \
   --metric-id [metric id] --hub-name [hub name] --metric-type [type] 
  • --config-id - IoT hub'ında var olan dağıtımın adı.

  • --metric-id - Cihaz kimliklerinin veya modül kimliklerinin listesini görmek istediğiniz ölçümün adı, örneğin appliedCount.

  • --hub-name - Dağıtımın bulunduğu IoT hub'ının adı. Hub geçerli abonelikte olmalıdır. komutuyla az account set -s [subscription name]istediğiniz aboneliğe geçin.

  • --metric-type - Ölçüm türü veya userolabilirsystem. Sistem ölçümleri ve appliedCountşeklindedirtargetedCount. Diğer tüm ölçümler kullanıcı ölçümleridir.

Yapılandırmayı değiştirme

Bir yapılandırmayı değiştirdiğinizde, değişiklikler hemen tüm hedeflenen cihazlara çoğaltılır.

Hedef koşulu güncelleştirirseniz aşağıdaki güncelleştirmeler gerçekleşir:

  • bir ikiz eski hedef koşulu karşılamadıysa ancak yeni hedef koşulu karşılıyorsa ve bu yapılandırma bu ikiz için en yüksek öncelikse, bu yapılandırma uygulanır.

  • Şu anda bu yapılandırmayı çalıştıran bir ikiz artık hedef koşulu karşılıyorsa, yapılandırmadaki ayarlar kaldırılır ve ikiz bir sonraki en yüksek öncelikli yapılandırma tarafından değiştirilir.

  • Şu anda bu yapılandırmayı çalıştıran bir ikiz artık hedef koşulu karşılamıyorsa ve diğer yapılandırmaların hedef koşulunu karşılamıyorsa, yapılandırmadaki ayarlar kaldırılır ve ikizde başka bir değişiklik yapılmaz.

Yapılandırmayı güncelleştirmek için aşağıdaki komutu kullanın:

az iot hub configuration update --config-id [configuration id] \
   --hub-name [hub name] --set [property1.property2='value']
  • --config-id - IoT hub'ında var olan yapılandırmanın adı.

  • --hub-name - Yapılandırmanın bulunduğu IoT hub'ının adı. Hub geçerli abonelikte olmalıdır. komutuyla az account set -s [subscription name]istediğiniz aboneliğe geçin.

  • --set - Yapılandırmadaki bir özelliği güncelleştirin. Aşağıdaki özellikleri güncelleştirebilirsiniz:

    • targetCondition - örneğin targetCondition=tags.location.state='Oregon'

    • Etiket

    • öncelik

Yapılandırmayı silme

Bir yapılandırmayı sildiğinizde, tüm cihaz ikizleri veya modül ikizleri bir sonraki en yüksek öncelikli yapılandırmalarını alır. İkizler başka bir yapılandırmanın hedef koşulunu karşılamıyorsa, başka bir ayar uygulanmaz.

Yapılandırmayı silmek için aşağıdaki komutu kullanın:

az iot hub configuration delete --config-id [configuration id] \
   --hub-name [hub name] 
  • --config-id - IoT hub'ında var olan yapılandırmanın adı.

  • --hub-name - Yapılandırmanın bulunduğu IoT hub'ının adı. Hub geçerli abonelikte olmalıdır. komutuyla az account set -s [subscription name]istediğiniz aboneliğe geçin.

Sonraki adımlar

Bu makalede, IoT cihazlarını büyük ölçekte yapılandırmayı ve izlemeyi öğrendiniz.

IoT Hub cihaz kimliklerini toplu olarak yönetmeyi öğrenmek için bkz . IoT Hub cihaz kimliklerini toplu olarak içeri ve dışarı aktarma