Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
IoT Hub için Azure Cihaz Güncelleştirmesi'nde çok adımlı sıralı yürütme, bir havadan güncelleştirme dağıttığınızda önceden yükleme ve yükleme sonrası görevleri çalıştırmanıza olanak tanır. Bu özellik, Cihaz Güncelleştirmesi güncelleştirme bildirimi şema sürüm 4'ün bir parçasıdır. Daha fazla bilgi için bkz . Cihaz Güncelleştirme güncelleştirme bildirimi.
Çok adımlı sıralı yürütme, satır içi adımlar ve başvuru adımları olmak üzere iki tür adım içerebilir. Satır içi adım, kodu yürüten bir yönergedir ve varsayılan türdür. Başvuru adımı, başka bir güncelleştirmenin tanımlayıcısını içeren bir adımdır.
Üst güncelleştirmeler ve alt güncelleştirmeler
Bir güncelleştirme bildirimi başka bir güncelleştirme bildirimine başvurduğunda, üst düzey bildirim üst güncelleştirme olarak adlandırılır ve başvuru adımında belirtilen bildirim alt güncelleştirme olarak adlandırılır. Alt güncelleştirme herhangi bir başvuru adımı içeremez, yalnızca satır içi adımlar içerir. Cihaz Güncelleştirmesi bu kısıtlamayı içeri aktarma zamanında doğrular ve karşılanmadıysa güncelleştirme başarısız olur.
Üst güncelleştirmede satır içi adımlar
Cihaz Güncelleştirmesi aracısı, ana cihaza üst güncelleştirmede belirtilen satır içi adımları uygular.
ADUC_WorkflowData Güncelleştirme içerik işleyicisi olarak da adlandırılan adım işleyicisine geçen nesne herhangi bir Selected Components veri içermez. Bu tür bir adımın işleyicisi bir Component-Aware işleyici olmamalıdır.
Cihaz Güncelleştirme aracısının adım içerik işleyicisi her adım için doğrulama mantığı uygular IsInstalled . Adım işleyicisi, sonuç kodu 900veya true döndürerek güncelleştirmenin zaten yüklü olup olmadığını IsInstalled() denetler ve adımın gerçekleştirilip gerçekleştirilmeyeceğini belirlemek için bu sonucu kullanır. Zaten cihazda olan bir güncelleştirmeyi yeniden yüklememek için, bir güncelleştirme zaten yüklüyse Cihaz Güncelleştirmesi aracısı gelecekteki adımları atlar.
Bir güncelleştirme sonucunu raporlamak için, seçenekte belirtildiği gibi istenen sonuç dosyasındaki yapıya ADUC_Result bir adım işleyicisi yürütmesinin --result-file sonucunu yazın. Yürütme sonuçlarına bağlı olarak, 0 başarı ve dönüş veya 0xFF önemli hatalar için geri dönün-1.
Daha fazla bilgi için bkz . Adım işleyicileri ve Özel bileşen kullanan içerik işleyicisi uygulama.
Üst güncelleştirmede başvuru adımları
Cihaz Güncelleştirmesi aracısı, ana cihaz üzerindeki veya bağlı bileşenlere bir üst güncelleştirmede belirtilen başvuru adımlarını uygular. Bir başvuru adımını işlediğinde, adım işleyicisi adımda belirtilen ayrılmış bir güncelleştirme bildirimi dosyasını indirir ve dosya bütünlüğünü doğrular.
Ardından adım işleyicisi alt güncelleştirme bildirimini ayrıştırır ve alt güncelleştirme bildirimindeki verileri ve üst güncelleştirme bildirimindeki dosya URL'si bilgilerini birleştirerek alt iş akışı verileri olarak da adlandırılan bir ADUC_Workflow nesne oluşturur. Bu alt iş akışı verilerinin olarak ayarlanmış 1bir level özelliği vardır.
Örnekler
Aşağıdaki örnek güncelleştirme bildiriminde bir satır içi adım vardır:
{
"updateId": {...},
"isDeployable": true,
"compatibility": [
{
"manufacturer": "du-device",
"model": "e2e-test"
}
],
"instructions": {
"steps": [
{
"description": "Example APT update that installs libcurl4-doc on a host device.",
"handler": "microsoft/apt:1",
"files": [
"apt-manifest-1.0.json"
],
"handlerProperties": {
"installedCriteria": "apt-update-test-1.0"
}
}
]
},
"manifestVersion": "4.0",
"importedDateTime": "2021-11-16T14:54:55.8858676Z",
"createdDateTime": "2021-11-16T14:50:47.3511877Z"
}
Aşağıdaki örnek güncelleştirme bildiriminde iki satır içi adım vardır:
{
"updateId": {...},
"isDeployable": true,
"compatibility": [
{
"manufacturer": "du-device",
"model": "e2e-test"
}
],
"instructions": {
"steps": [
{
"description": "Install libcurl4-doc on host device",
"handler": "microsoft/apt:1",
"files": [
"apt-manifest-1.0.json"
],
"handlerProperties": {
"installedCriteria": "apt-update-test-2.2"
}
},
{
"description": "Install tree on host device",
"handler": "microsoft/apt:1",
"files": [
"apt-manifest-tree-1.0.json"
],
"handlerProperties": {
"installedCriteria": "apt-update-test-tree-2.2"
}
}
]
},
"manifestVersion": "4.0",
"importedDateTime": "2021-11-16T20:21:33.6514738Z",
"createdDateTime": "2021-11-16T20:19:29.4019035Z"
}
Aşağıdaki üst güncelleştirme bildiriminde alt güncelleştirmeye başvuran bir başvuru adımı vardır:
{
"updateId": {...},
"isDeployable": true,
"compatibility": [
{
"manufacturer": "du-device",
"model": "e2e-test"
}
],
"instructions": {
"steps": [
{
"type": "reference",
"description": "Cameras Firmware Update",
"updateId": {
"provider": "contoso",
"name": "virtual-camera",
"version": "1.2"
}
}
]
},
"manifestVersion": "4.0",
"importedDateTime": "2021-11-17T07:26:14.7484389Z",
"createdDateTime": "2021-11-17T07:22:10.6014567Z"
}
Alt güncelleştirme satır içi adımlar içerir.
{
"updateId": {
"provider": "contoso",
"name": "virtual-camera",
"version": "1.2"
},
"isDeployable": false,
"compatibility": [
{
"group": "cameras"
}
],
"instructions": {
"steps": [
{
"description": "Cameras Update - preinstall step",
"handler": "microsoft/script:1",
"files": [
"contoso-camera-installscript.sh"
],
"handlerProperties": {
"scriptFileName": "contoso-camera-installscript.sh",
"arguments": "--pre-install-sim-success --component-name --component-name-val --component-group --component-group-val --component-prop path --component-prop-val path",
"installedCriteria": "contoso-virtual-camera-1.2-step-0"
}
},
{
"description": "Cameras Update - firmware installation (failure - missing file)",
"handler": "microsoft/script:1",
"files": [
"contoso-camera-installscript.sh",
"camera-firmware-1.1.json"
],
"handlerProperties": {
"scriptFileName": "missing-contoso-camera-installscript.sh",
"arguments": "--firmware-file camera-firmware-1.1.json --component-name --component-name-val --component-group --component-group-val --component-prop path --component-prop-val path",
"installedCriteria": "contoso-virtual-camera-1.2-step-1"
}
},
{
"description": "Cameras Update - postinstall step",
"handler": "microsoft/script:1",
"files": [
"contoso-camera-installscript.sh"
],
"handlerProperties": {
"scriptFileName": "contoso-camera-installscript.sh",
"arguments": "--post-install-sim-success --component-name --component-name-val --component-group --component-group-val --component-prop path --component-prop-val path",
"installedCriteria": "contoso-virtual-camera-1.2-step-2"
}
}
]
},
"referencedBy": [
{
"provider": "DU-Client-Eng",
"name": "MSOE-Update-Demo",
"version": "3.1"
}
],
"manifestVersion": "4.0",
"importedDateTime": "2021-11-17T07:26:14.7376536Z",
"createdDateTime": "2021-11-17T07:22:09.2232968Z",
"etag": "\"ad7a553d-24a8-492b-9885-9af424d44d58\""
}
Not
Adımın yürütülip yürütülmeyeceğini belirlemek için kullanırsanız installedCriteria , güncelleştirme bildiriminde her adıma farklı installedCriteria bir değer vermelisiniz.
Ayrılmış güncelleştirme bildirimleri
Azure IoT Hub ikiz veri boyutu sınırları nedeniyle dağıtım hatasını önlemek için Cihaz Güncelleştirmesi, ayrılmış güncelleştirme bildirimleri olarak adlandırılan JSON veri dosyaları olarak cihazlara büyük güncelleştirme bildirimleri sunar. Büyük bir içerik güncelleştirmesini Cihaz Güncelleştirmesi'ne aktardığınızda, oluşturulan güncelleştirme bildirimi, tam güncelleştirme bildirimi verilerini içeren adlı Detached Update Manifestbaşka bir yük dosyası içerir.
UpdateManifest Cihaz veya modül ikizindeki özelliği, ayrılmış güncelleştirme bildirimi dosya bilgilerini içerir. PnP PropertyChanged olayını işlediğinde, Cihaz Güncelleştirmesi aracısı ayrılmış güncelleştirme bildirim dosyasını otomatik olarak indirir ve tam güncelleştirme bildirimi verilerini içeren bir ADUC_WorkflowData nesne oluşturur.