다음을 통해 공유


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

이 문서에서는 업데이트 배포 중에 Azure Device Update for IoT Hub가 디바이스에 보내는 업데이트 매니페스트 데이터에 대해 설명합니다. 업데이트 매니페스트는 설치할 업데이트에 대한 메타데이터를 포함하는 직렬화된 JSON 문자열 개체입니다.

디바이스 업데이트는 IoT 플러그 앤 플레이 사용하여 업데이트 매니페스트를 보내고 디바이스 업데이트 에이전트가 해당 신뢰성을 확인할 수 있도록 암호화적으로 서명합니다. 업데이트 매니페스트를 사용하여 콘텐츠를 안전하게 설치하는 방법에 대한 자세한 내용은 디바이스 업데이트 보안을 참조하세요.

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

업데이트 매니페스트는 디바이스 업데이트 가져오기 매니페스트와 다릅니다.

  • 가져오기 매니페스트는 디바이스 업데이트로 가져올 업데이트를 설명하는 JSON 파일입니다. 디바이스 업데이트에 대한 업데이트를 만드는 사람은 해당 가져오기 매니페스트 파일을 만듭니다.
  • 업데이트 매니페스트는 업데이트 중에 디바이스 업데이트 에이전트에 정보를 전달하는 JSON 문자열 개체입니다. 디바이스 업데이트 서비스는 가져오기 매니페스트에 정의된 동일한 속성 중 일부를 포함하여 업데이트 매니페스트를 자동으로 생성합니다.

각 매니페스트 형식에는 고유한 스키마 및 스키마 버전이 있습니다. 매니페스트 스키마 가져오기에 대한 자세한 내용은 디바이스 업데이트 가져오기 매니페스트 스키마를 참조 하세요.

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

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

업데이트 매니페스트 예제

{
  "manifestVersion": "4",
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  },
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ],
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:2",
        "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"
}

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

업데이트 매니페스트가 너무 커서 효율적으로 통신할 수 없는 경우 디바이스 업데이트는 미니 업데이트 매니페스트라고도 하는 분리된 형식으로 디바이스보냅니다. 미니 매니페스트에는 디바이스 업데이트 에이전트가 전체 업데이트 매니페스트를 다운로드하고 해당 신뢰성을 확인하는 데 사용할 수 있는 업데이트 매니페스트에 대한 메타데이터가 포함되어 있습니다.

다음 예제에서는 미니 업데이트 매니페스트를 보여줍니다.

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