güncelleştirmeleri IoT Hub için Cihaz Güncelleştirmesi'ne aktarma

IoT Hub için Cihaz Güncelleştirmesi'nden cihazlara bir güncelleştirme dağıtmak için önce bu güncelleştirmeyi Cihaz Güncelleştirmesi hizmetine aktarmanız gerekir. İçeri aktarılan güncelleştirme Cihaz Güncelleştirme hizmetinde depolanır ve oradan cihazlara dağıtılabilir. 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 dosyasını veya dosyalarını (üretici yazılımı güncelleştirme paketi gibi) gönderirsiniz. İçeri aktarma bildiriminde tanımlanan meta veriler, güncelleştirmeyi almak için kullanılır. Meta verilerden 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.

Örneğin:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  },
  "isDeployable": false,
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ],
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:1",
        "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 bildirimi, IoT Hub kavramları için önemli Cihaz Güncelleştirmesi'ni temsil eden birkaç öğe içerir. Bu öğeler bu bölümde özetlenmiştir. Tam içeri aktarma şeması hakkında bilgi için bkz. Bildirim JSON şemasını içeri aktarma.

Kimliği güncelleştirme

Update identity veya updateId, IoT Hub için Cihaz Güncelleştirmesi'ndeki bir güncelleştirmenin benzersiz tanımlayıcısıdır. Üç bölümden oluşur:

  • Sağlayıcı: Güncelleştirmeyi oluşturan veya doğrudan sorumlu olan varlık. Genellikle bir şirket adı olacaktır.
  • Ad: Bir güncelleştirme sınıfı için tanımlayıcı. Genellikle bir cihaz sınıfı veya model adı olur.
  • Sürüm: Bu güncelleştirmeyi aynı sağlayıcıya ve ada sahip diğer kullanıcılardan ayıran bir sürüm numarası.

Ö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 cihazdaki gerçek yazılım bileşenlerinin kimliklerinden farklı olabilir.

Uyumluluk

Uyumluluk, güncelleştirmeyi yükleyebilen bir cihazın ölçütlerini tanımlar. Bir cihazdan bildirilen rastgele anahtar değer çiftleri kümesi olan cihaz özelliklerini içerir. Yalnızca eşleşen özelliklere sahip cihazlar dağıtım için uygun olacaktır. Bir güncelleştirme, birden fazla cihaz özelliği kümesine sahip olarak birden çok cihaz sınıfıyla uyumlu olabilir.

Aşağıda yalnızca Contoso ve Toaster'ı cihaz üreticisi ve modeli olarak raporlayan bir cihaza dağıtılabilen bir güncelleştirme örneği verilmiştir.

{
  "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 tek bir satır içi adım içerir. Bu adım, cihaz aracısı ile kaydedilmiş bir işleyici kullanarak dahil edilen yük dosyasını yürütür:

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

İpucu

handler , içeri aktarma bildirimi sürüm 3.0 veya üzeri ile eşdeğerdir updateType .

Güncelleştirme 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:1",
        "files": [
          "contoso.toaster.1.0.swu"
        ]
      }
    ]
  }
}

Bir güncelleştirme, cihaz aracısına kendi içeri aktarma bildirimiyle birlikte bir üst ve alt güncelleştirme ilişkisi kurarak başka bir güncelleştirme yüklemesini belirten başvuru adımları 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"
        }
      }
    ]
  }
}

Not

Güncelleştirme, satır içi ve başvuru adımlarının herhangi bir bileşimini içerebilir.

Dosyalar

Dosyalar bölümü, adları, boyutları ve karmaları gibi güncelleştirme yükü dosyalarının meta verilerini içerir. IoT Hub için 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. Aynı bilgiler daha sonra, yüklemeden önce bütünlük doğrulamasını yinelemek için cihaz aracısına iletilir.

Not

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

İçeri aktarma bildirimi oluşturma

Metin düzenleyicisi kullanarak el ile içeri aktarma bildirimi JSON yazmak mümkün olsa da, Azure Komut Satırı Arabirimi (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

İçeri aktarma bildirimi JSON dosya adı, Azure portal aracılığıyla içeri aktarıldığında ile .importmanifest.json bitmelidir.

İpucu

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

Güncelleştirmeleri içeri aktarma sınırları

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

Sonraki adımlar