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ü , size
ve hash
gibi name
gü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ı.