IoT Hub용 Azure Device Update 매니페스트 스키마 가져오기
업데이트를 IoT Hub용 Azure Device Update로 가져올 때 업데이트에 대한 중요한 정보를 정의하는 연결된 JSON 가져오기 매니페스트 파일도 제출합니다. 이 문서에서는 JSON 가져오기 매니페스트 파일을 만드는 데 사용되는 스키마에 대해 설명합니다.
매니페스트 가져오기 개념 및 파일 구조에 대한 자세한 내용은 Azure Device Update for IoT Hub 가져오기 매니페스트를 참조하세요. 파일을 만드는 방법을 알아보려면 IoT Hub용 디바이스 업데이트로 가져올 업데이트 준비를 참조하세요.
스키마
가져오기 매니페스트 JSON 스키마는 SchemaStore.org 호스트되며 다음 속성으로 구성됩니다. 다른 속성은 허용되지 않습니다.
속성 | Type | 설명 | 필수 |
---|---|---|---|
$schema | string |
JSON 스키마 참조. | 아니요 |
updateId | updateId |
고유 업데이트 식별자입니다. | 예 |
description | string |
선택적 업데이트 설명입니다. 최대 길이는 512자입니다. | 아니요 |
호환성 | compatibility |
이 업데이트와 호환되는 디바이스 속성 집합의 목록입니다. | 예 |
지침 | instructions |
설치 지침을 업데이트합니다. | 예 |
files | file [0-10] |
업데이트 페이로드 파일 목록입니다. 모든 파일 크기의 합계는 2GB를 초과할 수 없습니다. 모든 명령 단계가 참조 단계인 경우 비어 있거나 null일 수 있습니다. | 아니요 |
manifestVersion | string |
매니페스트 스키마 버전을 가져옵니다. 5.0이어야 합니다. | 예 |
createdDateTime | string |
예를 들어 "2020-10-02T22:18:04.9446744Z" ISO 8601 형식으로 매니페스트 만들기 날짜 및 시간을 가져옵니다. |
예 |
개체 업데이트
개체는 updateID
각 업데이트에 대한 고유 식별자입니다.
속성 | Type | 설명 | 필수 |
---|---|---|---|
provider | string |
업데이트를 만들거나 직접 담당하는 엔터티입니다. 공급자는 회사 이름이 될 수 있습니다. 패턴: ^[a-zA-Z0-9.-]+$ 최대 길이: 64자 |
예 |
이름 | string |
업데이트 클래스의 식별자입니다. 이름은 디바이스 클래스 또는 모델 이름이 될 수 있습니다. 패턴: ^[a-zA-Z0-9.-]+$ 최대 길이: 64자 |
예 |
version | string |
점으로 2~4부로 구분된 숫자 버전 번호입니다. 각 파트는 0에서 2147483647 사이의 숫자여야 하며 선행 0은 삭제됩니다. 패턴: ^\d+(?:\.\d+)+$ 예제: "1.0" , "2021.11.8" |
예 |
다른 속성은 허용되지 않습니다.
예시:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
호환성 개체
이 개체는 compatibility
이 업데이트와 호환되는 디바이스의 1-5 속성을 설명합니다. 각 속성은 형식 이름-값 쌍입니다 string
. 이름은 1~32자여야 하고 값은 1-64자여야 합니다. 둘 이상의 업데이트 공급자 및 이름 조합과 동일한 정확한 호환성 속성 집합을 사용할 수 없습니다.
예시:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
Instructions 개체
개체는 instructions
업데이트 설치 지침을 제공합니다. 지침 개체에는 수행할 목록이 steps
포함되어 있습니다. 다른 속성은 허용되지 않습니다.
단계는 실행할 코드이거나 다른 업데이트에 대한 포인터일 수 있습니다. 단계 개체는 inline
기본적으로 값이 제공되지 않는 type
경우로 설정됩니다.
속성 | Type | 설명 | 필수 |
---|---|---|---|
단계 | array[1-10] |
배열의 steps 각 요소는 인라인 단계 개체 또는 참조 단계 개체여야 합니다. |
예 |
예시:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
인라인 단계 개체
inline
단계 개체는 코드 실행을 수행하는 설치 명령 단계입니다.
속성 | Type | 설명 | 필수 |
---|---|---|---|
type | string |
코드 실행을 수행하는 명령 단계 유형입니다. inline 이어야 합니다. 기본값은 값이 제공되지 않는 경우 inline 으로 설정됩니다. |
아니요 |
description | string |
선택적 명령 단계 설명입니다. 최대 길이: 64자. | 아니요 |
handler | string |
이 단계를 실행할 수 있는 디바이스의 처리기 ID입니다. 패턴: ^\S+/\S+:\d{1,5}$ 최소 길이: 5자 최대 길이: 32자 예: microsoft/script:1 , microsoft/swupdate:1 , microsoft/apt:1 |
예 |
files | string [1-10] |
에이전트가 처리기에 전달하는 파일 개체로 정의된 업데이트 파일의 이름입니다. 각 요소 길이는 1-255자여야 합니다. | 예 |
handlerProperties | inlineStepHandlerProperties |
에이전트가 처리기에 인수로 전달하는 JSON 개체입니다. | 아니요 |
다른 속성은 허용되지 않습니다.
예시:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
참조 단계 개체
reference
단계 개체는 다른 업데이트를 설치하는 설치 지침 단계입니다.
속성 | Type | 설명 | 필수 |
---|---|---|---|
type | referenceStepType |
다른 업데이트를 설치하는 명령 단계 유형입니다. reference 이어야 합니다. |
예 |
description | stepDescription |
선택적 명령 단계 설명입니다. 최대 길이: 64자. | 아니요 |
updateId | updateId |
고유 업데이트 식별자입니다. | 예 |
다른 속성은 허용되지 않습니다.
예시:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
Files 개체
각 files
개체는 업데이트 내에서 고유해야 하는 이진 파일, 펌웨어 또는 스크립트 파일과 같은 업데이트 페이로드 파일입니다.
속성 | Type | 설명 | 필수 |
---|---|---|---|
filename | string |
페이로드 파일 이름을 업데이트합니다. 최대 길이: 255자 | 예 |
sizeInBytes | number |
파일 크기(바이트 수)입니다. 최대 크기: 2147483648바이트 | 예 |
hashes | fileHashes |
알고리즘 이름을 키로 사용하는, Base64로 인코딩된 파일 해시입니다. SHA-256 알고리즘 이상을 지정해야 하며 에이전트에서 지원하는 경우 추가 알고리즘을 지정할 수 있습니다. 해시를 계산하는 방법에 대한 자세한 내용은 Hashes 개체를 참조하세요. | 예 |
relatedFiles | relatedFile[0-4] |
하나 이상의 기본 페이로드 파일과 관련된 파일의 컬렉션입니다. 자세한 내용은 relatedFiles 개체를 참조 하세요. | 아니요 |
downloadHandler | downloadHandler |
관련 파일을 처리하는 방법을 지정합니다. | 예, 사용하는 relatedFiles 경우 . 자세한 내용은 downloadHandler 개체를 참조 하세요. |
다른 속성은 허용되지 않습니다.
예시:
{
"files": [
{
"fileName": "full-image-file-name",
"sizeInBytes": 12345,
"hashes": {...},
"relatedFiles": [
{
"fileName": "delta-from-v1-file-name",
"sizeInBytes": 1234,
"hashes": {
"SHA256": "delta-from-v1-file-hash"
},
"properties": {...}
}
],
"downloadHandler": {
"id": "microsoft/delta:1"
}
}
]
}
Hashes 개체
개체에는 hashes
알고리즘 이름을 키로 사용하는 base64로 인코딩된 파일 해시가 포함됩니다. SHA-256 알고리즘 이상을 지정해야 하며 에이전트에서 지원하는 경우 다른 알고리즘을 지정할 수도 있습니다. 해시를 올바르게 계산하는 방법에 대한 예제는 AduUpdate.psm1 스크립트의 함수를 참조 Get-AduFileHashes
하세요.
속성 | Type | 설명 | 필수 |
---|---|---|---|
sha256 | string |
SHA-256 알고리즘을 사용하여 Base64로 인코딩된 파일 해시 값입니다. | 예 |
다른 속성이 허용됩니다.
예시:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
relatedFiles 개체
개체에는 relatedFiles
하나 이상의 기본 페이로드 파일과 관련된 파일 컬렉션이 포함되어 있습니다. 자세한 내용은 관련 파일 기능을 사용하여 여러 업데이트 파일 참조를 참조하세요.
속성 | Type | 설명 | 필수 |
---|---|---|---|
filename | string |
기본 페이로드 파일과 연결된 관련 파일 목록입니다. | 예 |
sizeInBytes | number |
파일 크기(바이트 수)입니다. 최대 크기: 2147483648 바이트입니다. | 예 |
hashes | fileHashes |
알고리즘 이름을 키로 사용하는, Base64로 인코딩된 파일 해시입니다. 자세한 내용은 Hashes 개체를 참조 하세요. | 예 |
속성 | relatedFilesProperties [0-5] |
최대 5개의 키-값 쌍으로, 키는 64개의 ASCII 문자로 제한되고 값은 최대 256개의 ASCII 문자가 있는 JObject입니다. | 아니요 |
다른 속성이 허용됩니다.
예시:
"relatedFiles": [
{
"filename": "in1_in2_deltaupdate.dat",
"sizeInBytes": 102910752,
"hashes": {
"sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
},
"properties": {
"microsoft.sourceFileHashAlgorithm": "sha256",
"microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
}
}
],
downloadHandler 개체
개체는 downloadHandler
관련 파일을 처리하는 방법을 지정합니다.
속성 | Type | 설명 | 필수 |
---|---|---|---|
id | string |
에 대한 식별자입니다 downloadHandler . ASCII 문자 64개로 제한합니다. |
예( 사용하는 경우) relatedFiles |
다른 속성은 허용되지 않습니다.
예시:
"downloadHandler": {
"id": "microsoft/delta:1"
}