Device Update for IoT Hub로 업데이트 가져오기
Device Update for IoT Hub에서 디바이스에 업데이트를 배포하려면 먼저 해당 업데이트를 디바이스 업데이트 서비스로 가져와야 합니다. 가져온 업데이트는 디바이스 업데이트 서비스에 저장되며 여기에서 디바이스로 배포할 수 있습니다. 이 문서에서는 업데이트를 가져올 때 이해해야 할 몇 가지 중요한 개념에 대한 개요를 제공합니다.
매니페스트 가져오기
가져오기 매니페스트는 가져오는 업데이트에 대한 중요한 정보를 정의하는 JSON 파일입니다. 가져오기 프로세스의 일부로 가져오기 매니페스트와 관련 업데이트 파일(예: 펌웨어 업데이트 패키지)을 모두 제출합니다. 가져오기 매니페스트에 정의된 메타데이터는 업데이트를 수집하는 데 사용됩니다. 일부 메타데이터는 배포 시에도 사용됩니다(예: 업데이트가 올바르게 설치되었는지 확인).
예시:
{
"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"
}
가져오기 매니페스트에는 중요한 Device Update for IoT Hub 개념을 나타내는 여러 항목이 포함되어 있습니다. 이러한 항목에 대해서는 이 섹션에서 설명합니다. 전체 가져오기 스키마에 대한 자세한 내용은 매니페스트 JSON 스키마 가져오기를 참조하세요.
업데이트 ID
업데이트 ID 또는 updateId는 Device Update for IoT Hub의 업데이트에 대한 고유 식별자입니다. 세 부분으로 구성되어 있습니다.
- 공급자: 업데이트를 만들거나 업데이트를 직접 담당하는 주체입니다. 회사 이름인 경우가 많습니다.
- 이름: 업데이트 클래스의 식별자입니다. 종종 디바이스 클래스 또는 모델 이름이 됩니다.
- 버전: 이 업데이트를 공급자와 이름이 같은 다른 업데이트와 구별하는 버전 번호입니다.
예시:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
참고 항목
UpdateId는 디바이스 업데이트 서비스에서만 사용되며 디바이스의 실제 소프트웨어 구성 요소의 ID와 다를 수 있습니다.
호환성
호환성은 업데이트를 설치할 수 있는 디바이스의 기준을 정의합니다. 여기에는 디바이스 속성(디바이스에서 보고되는 임의의 키 값 쌍 세트)이 포함됩니다. 속성이 일치하는 디바이스만 배포할 수 있습니다. 업데이트는 둘 이상의 디바이스 속성 집합을 사용하여 여러 디바이스 클래스와 호환될 수 있습니다.
다음은 Contoso 및 Toaster를 디바이스 제조업체 및 모델로 보고하는 디바이스에만 배포할 수 있는 업데이트의 예제입니다.
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
지침
지침 부분에는 디바이스 에이전트가 업데이트를 설치하는 데 필요한 정보 또는 단계가 포함되어 있습니다. 가장 간단한 업데이트에는 단일 인라인 단계가 포함됩니다. 이 단계에서는 디바이스 에이전트에 등록된 처리기를 사용하여 포함된 페이로드 파일을 실행합니다.
{
"instructions": {
"steps": [
{
"handler": "microsoft/swupdate:1",
"files": [
"contoso.toaster.1.0.swu"
]
}
]
}
}
팁
handler
는 가져오기 매니페스트 버전 3.0 또는 이전 버전의 updateType
에 해당합니다.
업데이트에는 두 개 이상의 단계가 포함될 수 있습니다.
{
"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"
]
}
]
}
}
업데이트에는 부모 및 자식 업데이트 관계를 설정하여 자체 가져오기 매니페스트와 함께 다른 업데이트를 함께 설치하도록 디바이스 에이전트에 지시하는 참조 단계가 포함될 수 있습니다. 예를 들어 토스터에 대한 업데이트에는 두 개의 자식 업데이트가 포함될 수 있습니다.
{
"instructions": {
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
},
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.Sensors",
"version": "1.0"
}
}
]
}
}
참고 항목
업데이트에는 인라인 단계와 참조 단계의 조합이 포함될 수 있습니다.
Files
파일 부분에는 이름, 크기, 해시와 같은 업데이트 페이로드 파일의 메타데이터가 포함됩니다. Device Update for IoT Hub는 가져오기 프로세스 중 무결성 유효성 검사를 위해 이 메타데이터를 사용합니다. 그런 다음, 동일한 정보가 디바이스 에이전트에 전달되어 설치 전에 무결성 유효성 검사를 반복합니다.
참고 항목
참조 단계만 포함하는 업데이트에는 부모 업데이트에 업데이트 페이로드 파일이 없습니다.
가져오기 매니페스트 만들기
텍스트 편집기를 사용하여 가져오기 매니페스트 JSON을 수동으로 작성할 수 있지만 Azure CLI(명령줄 인터페이스)는 프로세스를 크게 단순화합니다. 가져오기 매니페스트 만들기를 시도할 준비가 되면 방법 가이드를 사용할 수 있습니다.
Important
가져오기 매니페스트 JSON 파일 이름은 Azure Portal을 통해 가져올 때 .importmanifest.json
으로 끝나야 합니다.
팁
가져오기 매니페스트를 만들 때 Visual Studio Code를 사용하여 자동 완성 및 JSON 스키마 유효성 검사를 사용하도록 설정합니다.
업데이트 가져오기 제한
Device Update for IoT Hub 인스턴스마다 특정 제한이 적용됩니다. 아직 검토하지 않은 경우 디바이스 업데이트 제한을 참조하세요.
다음 단계
- 가져오기 프로세스에 대한 자세한 내용은 가져올 업데이트 준비를 참조하세요.
- 가져오기 매니페스트 스키마를 검토합니다.