다음을 통해 공유


IoT Hub용 Azure 디바이스 업데이트 가져오기 개념

Azure Device Update for IoT Hub를 사용하여 디바이스에 업데이트를 배포하려면 먼저 가져온 업데이트를 저장하고 디바이스에 배포하는 Device Update 서비스로 업데이트를 가져옵니다. 이 문서에서는 업데이트를 가져올 때 이해해야 할 몇 가지 중요한 개념에 대한 개요를 제공합니다.

매니페스트 가져오기

가져오기 매니페스트는 가져오는 업데이트에 대한 중요한 정보를 정의하는 JSON 파일입니다. 가져오기 프로세스의 일부로 가져오기 매니페스트와 연결된 업데이트 파일 또는 파일(예: 펌웨어 업데이트 패키지)을 모두 제출합니다. 가져오기 매니페스트에 정의된 메타데이터는 업데이트를 수집하는 데 사용됩니다. 일부 메타데이터는 배포 시에도 사용됩니다. 예를 들어 업데이트가 올바르게 설치되었는지 유효성을 검사합니다.

다음 JSON 코드는 매니페스트 파일 가져오기 예제를 보여줍니다.

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

가져오기 매니페스트 파일의 섹션은 다음 섹션에 설명된 대로 중요한 디바이스 업데이트 개념을 나타냅니다. 전체 가져오기 매니페스트 스키마에 대한 자세한 내용은 매니페스트 JSON 스키마 가져오기를 참조 하세요.

업데이트 ID

업데이트 ID 또는 updateId 디바이스 업데이트의 업데이트에 대한 고유 식별자이며 다음 속성을 포함합니다.

  • 공급자 는 업데이트를 만들거나 담당하는 엔터티입니다. 공급자 는 종종 회사 이름입니다.
  • 이름은 업데이트 클래스의 식별자입니다. 이름은 종종 디바이스 클래스 또는 모델 이름입니다.
  • 버전은 이 업데이트를 동일한 공급자 및 이름을 가진 다른 사용자와 구분하는 숫자입니다.

예시:

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

참고 항목

디바이스 updateId 업데이트 서비스에서만 사용되며 디바이스의 소프트웨어 구성 요소 ID와 다릅니다.

호환성

호환성 섹션에서는 하나 이상의 임의 키-값 쌍을 사용하여 업데이트를 설치할 수 있는 디바이스를 정의합니다. 호환성 값과 일치하는 속성을 보고하는 디바이스만 업데이트를 배포할 수 있습니다. 둘 이상의 디바이스 호환성 속성 집합을 포함하여 여러 디바이스 클래스와 호환되는 업데이트를 만들 수 있습니다.

다음 예제에서는 Contoso 및 Toaster를 디바이스 제조업체 및 모델로 보고하는 디바이스에만 배포할 수 있는 업데이트를 보여줍니다.

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

지침

지침 섹션에는 디바이스 에이전트가 업데이트를 설치하는 데 필요한 정보 또는 단계가 포함되어 있습니다. 가장 간단한 업데이트에는 디바이스 에이전트에 등록된 처리기를 사용하여 업데이트 페이로드 파일을 실행하는 단일 인라인 단계가 포함되어 있습니다. 다음 예제에서는 단일 단계 지침 섹션을 보여 줍니다.

{
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:2",
        "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:2",
        "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

가져오기 매니페스트의 파일 섹션에는 업데이트 페이로드 파일 메타데이터(예: name, size및 .)가 포함되어 있습니다hash. 디바이스 업데이트는 가져오기 프로세스 중에 무결성 유효성 검사에 이 메타데이터를 사용하고 설치 전에 무결성 유효성 검사를 위해 동일한 정보를 디바이스 에이전트에 전달합니다.

참고 항목

참조 단계만 포함된 부모 업데이트는 업데이트 페이로드 파일을 정의하지 않습니다.

가져오기 매니페스트 만들기

텍스트 편집기를 사용하여 수동으로 가져오기 매니페스트 JSON을 작성할 수 있지만 Azure CLI는 프로세스를 크게 간소화합니다. 가져오기 매니페스트 만들기를 시도할 준비가 되면 방법 가이드를 사용할 수 있습니다.

Important

Azure Portal을 통해 디바이스 업데이트 서비스로 가져오려면 가져오기 매니페스트 JSON 파일 이름은 .importmanifest.json 종료해야 합니다.

가져오기 매니페스트를 만들 때 Visual Studio Code를 사용하여 자동 완성 및 JSON 스키마 유효성 검사를 사용하도록 설정할 수 있습니다.

가져오기 제한 업데이트

Device Update for IoT Hub 인스턴스마다 특정 제한이 적용됩니다. 아직 검토하지 않은 경우 디바이스 업데이트 제한을 참조하세요.