Aracılığıyla paylaş


IoT Hub içeri aktarma kavramları için Azure Cihaz Güncelleştirmesi

IoT Hub için Azure Cihaz Güncelleştirmesi'ni kullanarak cihazlara güncelleştirme dağıtmak için, önce güncelleştirmeyi içeri aktarılan güncelleştirmeyi depolayan ve cihazlara dağıtan Cihaz Güncelleştirmesi hizmetine aktarırsınız. Bu makalede, güncelleştirmeleri içeri aktarma konusunda anlaşılması gereken bazı önemli kavramlara genel bir bakış sağlanmaktadır.

Bildirimi içeri aktarma

İçeri aktarma bildirimi, içeri aktardığınız güncelleştirmeyle ilgili önemli bilgileri tanımlayan bir JSON dosyasıdır. İçeri aktarma işleminin bir parçası olarak hem içeri aktarma bildiriminizi hem de ilişkili güncelleştirme dosyanızı veya üretici yazılımı güncelleştirme paketi gibi dosyaları gönderirsiniz. İçeri aktarma bildiriminde tanımlanan meta veriler, güncelleştirmeyi almak için kullanılır. Meta verilerin bazıları dağıtım zamanında da kullanılır, örneğin bir güncelleştirmenin doğru yüklenip yüklenmediğini doğrulamak için.

Aşağıdaki JSON kodu örnek bir içeri aktarma bildirim dosyasını gösterir:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  },
  "isDeployable": false,
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ],
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:2",
        "files": [
          "firmware.swu"
        ],
        "handlerProperties": {
          "installedCriteria": "1.0"
        }
      }
    ]
  },
  "files": [
    {
      "filename": "firmware.swu",
      "sizeInBytes": 7558,
      "hashes": {
        "sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
      }
    }
  ],
  "createdDateTime": "2022-01-19T06:23:52.6996916Z",
  "manifestVersion": "5.0"
}

İçeri aktarma bildirim dosyasının bölümleri, aşağıdaki bölümlerde açıklandığı gibi önemli Cihaz Güncelleştirmesi kavramlarını temsil eder. Tam içeri aktarma bildirimi şeması hakkında bilgi için bkz . Bildirim JSON şemasını içeri aktarma.

Kimliği güncelleştirme

Güncelleştirme kimliği veya updateId Cihaz Güncelleştirmesi'ndeki bir güncelleştirmenin benzersiz tanımlayıcısıdır ve aşağıdaki özellikleri içerir:

  • Sağlayıcı , güncelleştirmeyi oluşturan veya güncelleştirmeden sorumlu olan varlıktır. Sağlayıcı genellikle bir şirket adıdır.
  • Ad , güncelleştirme sınıfının tanımlayıcısıdır. Ad genellikle bir cihaz sınıfı veya model adıdır.
  • Sürüm , bu güncelleştirmeyi aynı sağlayıcı ve ada sahip diğer kullanıcılardan ayıran bir sayıdır.

Örneğin:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  }
}

Not

updateId yalnızca Cihaz Güncelleştirme hizmeti tarafından kullanılır ve cihazlardaki yazılım bileşeni kimliklerinden farklıdır.

Uyumluluk

Uyumluluk bölümü, bir güncelleştirmeyi yükleyebilen cihazları tanımlamak için bir veya daha fazla rastgele anahtar-değer çifti kullanır. Yalnızca uyumluluk değerleriyle eşleşen özellikleri raporlayan cihazlar güncelleştirmeyi dağıtmaya uygundur. Birden fazla cihaz uyumluluk özelliği kümesi ekleyerek bir güncelleştirmeyi birden çok cihaz sınıfıyla uyumlu hale getirebilirsiniz.

Aşağıdaki örnekte yalnızca Contoso ve Toaster'ı cihaz üreticisi ve modeli olarak raporlayan cihazlara dağıtılabilen bir güncelleştirme gösterilmektedir.

{
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ]
}

Yönergeler

Yönergeler bölümü, cihaz aracısının güncelleştirmeyi yüklemesi için gerekli bilgileri veya adımları içerir. En basit güncelleştirme, cihaz aracısı ile kaydedilen bir işleyici kullanarak güncelleştirme yükü dosyasını yürüten tek bir satır içi adım içerir. Aşağıdaki örnekte tek adımlı yönergeler bölümü gösterilmektedir.

{
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:2",
        "files": [
          "contoso.toaster.1.0.swu"
        ]
      }
    ]
  }
}

Not

handler özelliği, içeri aktarma bildirimi sürüm 3.0 veya daha eski sürümündeki özelliğe eşdeğerdirupdateType.

Bir güncelleştirme, aşağıdaki örnekte olduğu gibi birden fazla adım içerebilir:

{
  "instructions": {
    "steps": [
      {
        "description": "pre-install script",
        "handler": "microsoft/script:1",
        "handlerProperties": {
          "arguments": "--pre-install"
        },
        "files": [
          "configure.sh"
        ]
      },
      {
        "description": "firmware package",
        "handler": "microsoft/swupdate:2",
        "files": [
          "contoso.toaster.1.0.swu"
        ]
      }
    ]
  }
}

Güncelleştirme, cihaz aracısına kendi içeri aktarma bildirimiyle başka bir güncelleştirme yüklemesini ve üst ve alt güncelleştirme ilişkisi kurmasını sağlayan başvuru adımları içerebilir. Güncelleştirme, satır içi ve başvuru adımlarının herhangi bir bileşimini içerebilir.

Örneğin, bir tost makinesi güncelleştirmesi iki alt güncelleştirme içerebilir:

{
  "instructions": {
    "steps": [
      {
        "type": "reference",
        "updateId": {
          "provider": "Contoso",
          "name": "Toaster.HeatingElement",
          "version": "1.0"
        }
      },
      {
        "type": "reference",
        "updateId": {
          "provider": "Contoso",
          "name": "Toaster.Sensors",
          "version": "1.0"
        }
      }
    ]
  }
}

Dosyalar

İçeri aktarma bildiriminin Dosyalar bölümü , sizeve hashgibi namegüncelleştirme yükü dosyası meta verilerini içerir. Cihaz Güncelleştirmesi, içeri aktarma işlemi sırasında bütünlük doğrulaması için bu meta verileri kullanır ve aynı bilgileri yüklemeden önce bütünlük doğrulaması için cihaz aracısına iletir.

Not

Yalnızca başvuru adımlarını içeren bir üst güncelleştirme, herhangi bir güncelleştirme yükü dosyası tanımlamaz.

İçeri aktarma bildirimi oluşturma

Metin düzenleyicisi kullanarak el ile içeri aktarma bildirimi JSON yazmak mümkün olsa da Azure CLI işlemi büyük ölçüde basitleştirir. İçeri aktarma bildirimi oluşturmayı denemeye hazır olduğunuzda Nasıl yapılır kılavuzunu kullanabilirsiniz.

Önemli

Azure portalı aracılığıyla Cihaz Güncelleştirmesi hizmetine aktarmak için bir içeri aktarma bildirimi JSON dosya adının .importmanifest.json ile bitmesi gerekir.

İpucu

İçeri aktarma bildirimi oluştururken otomatik tamamlama ve JSON şema doğrulamasını etkinleştirmek için Visual Studio Code'u kullanabilirsiniz.

İçeri aktarma sınırlarını güncelleştirme

IoT Hub örneği için her Cihaz Güncelleştirmesi için belirli sınırlar uygulanır. Bunları henüz gözden geçirmediyseniz bkz . Cihaz Güncelleştirme sınırları.