Bagikan melalui


Mengimpor pembaruan ke Device Update for IoT Hub

Untuk menyebarkan pembaruan ke perangkat dari Device Update for IoT Hub, pertama-tama Anda harus mengimpor pembaruan tersebut ke layanan Pembaruan Perangkat. Pembaruan yang diimpor akan disimpan di layanan Pembaruan Perangkat dan dapat disebarkan dari sana ke perangkat. Artikel ini memberikan ringkasan tentang beberapa konsep yang penting untuk dipahami saat mengimpor pembaruan.

Manifes impor

Manifes impor adalah file JSON yang mendefinisikan informasi penting tentang pembaruan yang Anda impor. Anda mengirimkan manifes impor dan file atau file pembaruan terkait (seperti paket pembaruan firmware) sebagai bagian dari proses impor. Metadata yang didefinisikan dalam manifes impor digunakan untuk memproses pembaruan. Beberapa metadata juga digunakan pada waktu penyebaran - misalnya, untuk memvalidasi apakah pembaruan diinstal dengan benar.

Contohnya:

{
  "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"
}

Manifes impor berisi beberapa item yang mewakili konsep Device Update for IoT Hub penting. Item-item ini diuraikan dalam bagian ini. Untuk informasi tentang skema impor lengkap, lihat Impor skema JSON manifes.

Identitas pembaruan

Identitas pembaruan atau updateId adalah pengidentifikasi unik untuk pembaruan di Device Update for IoT Hub. Identitas pembaruan terdiri dari tiga bagian:

  • Penyedia: entitas yang membuat atau bertanggung jawab langsung atas pembaruan tersebut. Biasanya adalah nama perusahaan.
  • Nama : Pengidentifikasi untuk kelas pembaruan. Biasanya berupa perangkat atau nama model.
  • Versi: nomor versi yang membedakan pembaruan ini dari pembaruan lain yang memiliki penyedia dan nama yang sama.

Contohnya:

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

Catatan

UpdateId hanya digunakan oleh layanan Pembaruan Perangkat, dan mungkin berbeda dari identitas komponen perangkat lunak sebenarnya pada perangkat.

Kompatibilitas

Kompatibilitas menentukan kriteria perangkat yang dapat menginstal pembaruan. UpdateId berisi properti perangkat yang merupakan kumpulan pasangan nilai kunci arbitrer yang dilaporkan dari perangkat. Hanya perangkat dengan properti yang cocok yang memenuhi syarat untuk penyebaran. Pembaruan mungkin kompatibel dengan beberapa kelas perangkat dengan memiliki lebih dari satu set properti perangkat.

Berikut adalah contoh pembaruan yang hanya dapat disebarkan ke perangkat yang melaporkan Contoso dan Toaster sebagai produsen dan model perangkatnya.

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

Instruksi

Bagian Instruksi berisi informasi atau langkah-langkah yang diperlukan bagi agen perangkat untuk menginstal pembaruan. Pembaruan paling sederhana berisi satu langkah inline. Langkah itu mengeksekusi file payload yang disertakan menggunakan handler yang terdaftar di agen perangkat:

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

Tip

handler setara dengan updateType dalam manifes impor versi 3.0 atau yang lebih lama.

Pembaruan mungkin berisi lebih dari satu langkah:

{
  "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"
        ]
      }
    ]
  }
}

Pembaruan dapat berisi langkah-langkah referensi yang menginstruksikan agen perangkat untuk menginstal pembaruan lain dengan manifes impornya sendiri sekaligus, membangun hubungan pembaruan induk dan anak. Misalnya, pembaruan untuk pemanggang roti mungkin berisi dua pembaruan turunan:

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

Catatan

Pembaruan mungkin berisi kombinasi langkah-langkah sebaris dan referensi.

File

Bagian File berisi metadata file payload pembaruan seperti nama, ukuran, dan hashnya. Device Update for IoT Hub menggunakan metadata ini untuk validasi integritas selama proses impor. Informasi yang sama kemudian diteruskan ke agen perangkat untuk mengulangi validasi integritas sebelum penginstalan.

Catatan

Pembaruan yang hanya berisi langkah-langkah referensi tidak akan memiliki file payload pembaruan apa pun di pembaruan induk.

Buat manifes impor

Meskipun dimungkinkan untuk menulis manifes impor JSON secara manual menggunakan editor teks, Azure Command Line Interface (CLI) sangat menyederhanakan proses. Ketika Anda siap untuk mencoba pembuatan manifes impor, Anda dapat menggunakan panduan Cara.

Penting

Nama file JSON manifes impor harus diakhiri dengan .importmanifest.json saat diimpor melalui portal Microsoft Azure.

Tip

Gunakan Visual Studio Code untuk mengaktifkan pelengkapan otomatis dan validasi skema JSON saat membuat manifes impor.

Batasan mengimpor pembaruan

Batas tertentu diberlakukan untuk setiap instans Device Update for IoT Hub. Jika Anda belum meninjaunya, lihat Batas Pembaruan Perangkat.

Langkah berikutnya