다음을 통해 공유


Device Update for IoT Hub 업데이트 매니페스트

Device Update for IoT Hub는 IoT 플러그 앤 플레이를 사용하여 배포 중에 디바이스에 데이터를 보냅니다. 그 중 하나는 설치할 업데이트의 메타데이터를 포함하는 직렬화된 JSON 개체 문자열인 업데이트 매니페스트입니다. 또한 디바이스 업데이트 에이전트가 인증을 확인할 수 있도록 암호로 서명됩니다. 업데이트 매니페스트를 사용하여 콘텐츠를 안전하게 설치하는 방법에 대한 자세한 내용은 디바이스 업데이트 보안을 참조하세요.

가져오기 매니페스트 및 업데이트 매니페스트

Device Update for IoT Hub에서 가져오기 매니페스트와 업데이트 매니페스트 개념 간의 차이점을 이해하는 것이 중요합니다.

  • 가져오기 매니페스트는 해당 업데이트를 만든 사람이 만듭니다. Device Update for IoT Hub로 가져올 업데이트의 내용을 설명합니다.
  • 업데이트 매니페스트는 가져오기 매니페스트에 정의된 일부 속성을 사용하여 Device Update for IoT Hub 서비스에 의해 자동으로 생성됩니다. 업데이트 프로세스 중에 디바이스 업데이트 에이전트에 관련 정보를 전달하는 데 사용됩니다.

각 매니페스트 형식에는 고유한 스키마 및 스키마 버전이 있습니다.

업데이트 매니페스트 스키마

Important

업데이트 매니페스트 JSON 스키마 버전 4는 SchemaStore.org에서 호스팅됩니다.

업데이트 매니페스트 예제

{
  "manifestVersion": "4",
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  },
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ],
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:1",
        "handlerProperties": {
          "installedCriteria": "1.0"
        },
        "files": [
          "fileId0"
        ]
      }
    ]
  },
  "files": {
    "fileId0": {
      "filename": "contoso.toaster.1.0.swu",
      "sizeInBytes": 718,
      "hashes": {
        "sha256": "mcB5SexMU4JOOzqmlJqKbue9qMskWY3EI/iVjJxCtAs="
      }
    }
  },
  "createdDateTime": "2021-09-28T18:32:01.8404544Z"
}

전체 및 미니 업데이트 매니페스트

업데이트 매니페스트가 특정 크기를 초과하여 효율적으로 통신할 수 없는 경우 Device Update for IoT Hub는 이를 미니 업데이트 매니페스트라고도 하는 분리된 형식으로 디바이스에 보냅니다. 미니 매니페스트는 기술적으로 업데이트 매니페스트에 대한 메타데이터이며 디바이스 업데이트 에이전트가 전체 업데이트 매니페스트를 다운로드하고 신뢰성을 확인하는 데 필요한 정보를 포함합니다.

미니 업데이트 매니페스트의 예:

{
  "manifestVersion": "4",
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  },
  "detachedManifestFileId": "fileId1",
  "files": {
    "fileId1": {
      "filename": "contoso.toaster.1.0.updatemanifest.json",
      "sizeInBytes": 2048,
      "hashes": {
        "sha256": "789s9PDfX4uA9wFUubyC30BWkLFbgmpkpmz1fEdqo2U="
      }
    }
  }
}