다음을 통해 공유


Device Update for IoT Hub로 가져올 업데이트 준비

새 업데이트를 가져오고 Azure Device Update for IoT Hub로 가져오기 위한 업데이트를 준비하는 방법을 알아봅니다.

필수 조건

  • Device Update for IoT Hub를 사용하도록 설정하여 IoT Hub에 액세스합니다.

  • Azure CLI 환경:

    1. az login 명령을 사용하여 Azure CLI에 로그인합니다.
    2. az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
    3. 메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 이 문서의 명령은 azure-iot 확장을 사용합니다. az extension update --name azure-iot를 실행하여 최신 버전의 확장을 사용하고 있는지 확인합니다.

이 문서의 Azure CLI 명령은 명령 인수를 더 쉽게 읽을 수 있도록 줄 연속에 백슬래시 \ 문자를 사용합니다. 이 구문은 Bash 환경에서 작동합니다. PowerShell에서 이 명령을 실행하는 경우 각 백슬래시를 백틱(```)으로 바꾸거나 완전히 제거합니다.

디바이스에 대한 업데이트 얻기

이제 Device Update를 설정하고 디바이스를 프로비전했으므로 해당 디바이스에 배포할 업데이트 파일이 필요합니다.

  • OEM(Original Equipment Manufacturer) 또는 솔루션 통합자에서 디바이스를 구매한 경우 해당 조직에서는 사용자가 업데이트를 만들 필요가 없도록 업데이트 파일을 제공할 가능성이 높습니다. 업데이트를 제공하는 방법을 알아보려면 OEM 또는 솔루션 통합자에 문의하세요.

  • 조직에서 사용자가 사용하는 디바이스에 대한 소프트웨어를 만드는 경우 해당 조직이 해당 소프트웨어에 대한 업데이트를 만들게 됩니다.

Device Update for IoT Hub를 사용하여 배포할 업데이트를 만드는 경우 시나리오에 따라 이미지 기반 또는 패키지 기반 접근 방식으로 시작합니다.

기본 Device Update 가져오기 매니페스트 만들기

업데이트 파일이 있으면 업데이트를 설명하는 가져오기 매니페스트를 만듭니다. 아직 그러지 않았다면 기본 가져오기 개념을 숙지하는 것이 좋습니다. 텍스트 편집기를 사용하여 가져오기 매니페스트 JSON을 수동으로 작성할 수 있지만 아래 예에서 사용되는 Azure CLI(명령줄 인터페이스)는 이 프로세스를 크게 단순화합니다.

아직 수행하지 않은 경우 이미지 기반, 패키지 기반 또는 프록시 업데이트 자습서를 사용해 보세요. 참조용으로 해당 자습서에서 샘플 가져오기 매니페스트 파일을 볼 수도 있습니다.

az iot du init v5 명령은 다음 인수를 사용합니다.

  • --update-provider, --update-name--update-version: 이 세 매개 변수는 각 업데이트의 고유 식별자인 updateId 개체를 정의합니다.
  • --compat: compatibility 개체는 이 업데이트와 호환되는 디바이스의 속성을 설명하는 이름-값 쌍 집합입니다.
    • 동일한 호환성 속성 세트를 둘 이상의 공급자 및 이름 조합과 함께 사용할 수 없습니다.
  • --step: 디바이스의 업데이트 처리기(예: microsoft/script:1, microsoft/swupdate:1 또는 microsoft/apt:1) 및 이 업데이트에 대한 관련 속성입니다.
  • --file: 업데이트 파일의 경로입니다.

이러한 매개 변수에 대한 자세한 내용은 스키마 및 API 정보 가져오기를 참조하세요.

az iot du update init v5 \
    --update-provider <replace with your Provider> \
    --update-name <replace with your update Name> \
    --update-version <replace with your update Version> \
    --compat <replace with the property name>=<replace with the value your device will report> <replace with the property name>=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> properties=<replace with any handler properties (JSON-formatted)> \
    --file path=<replace with path(s) to your update file(s), including the full file name> 

예시:

az iot du update init v5 \
    --update-provider Microsoft \
    --update-name AptUpdate \
    --update-version 1.0.0 \
    --compat manufacturer=Contoso model=Vacuum \
    --step handler=microsoft/script:1 properties='{"installedCriteria": "1.0"}' \
    --file path=/my/apt/manifest/file

처리기 속성의 경우 JSON의 특정 문자를 이스케이프 처리해야 할 수 있습니다. 예를 들어, PowerShell에서 Azure CLI를 실행하는 경우 '\'를 사용하여 큰따옴표를 이스케이프 처리합니다.

init 명령은 여러 업데이트 파일 간의 관계를 정의할 수 있는 관련 파일 기능을 비롯한 고급 시나리오를 지원합니다. 더 많은 예와 선택적 매개 변수의 전체 목록은 az iot du init v5를 참조하세요.

업데이트를 가져올 준비가 되었다면 가져오기 매니페스트를 만들고 JSON 파일로 저장합니다. 가져오기에 Azure Portal UI를 사용하려는 경우 가져오기 매니페스트의 이름을 "<manifestname.importmanifest.json>" 형식으로 지정해야 합니다.

프록시 업데이트에 대한 고급 디바이스 업데이트 가져오기 매니페스트 만들기

프록시 업데이트와 같이 업데이트가 더 복잡한 경우 여러 가져오기 매니페스트를 만들어야 할 수 있습니다. 이전 섹션과 동일한 Azure CLI 방식을 사용하여 부모 가져오기 매니페스트와 복잡한 업데이트를 위한 일부 자식 가져오기 매니페스트를 모두 만들 수 있습니다. 샘플 매개 변수 값을 고유의 값으로 바꾼 후 다음 Azure CLI 명령을 실행합니다. 사용할 수 있는 값에 대한 자세한 내용은 스키마 및 API 정보 가져오기를 참조하세요. 아래 예에는 디바이스에 배포할 세 가지 업데이트가 있습니다. 하나는 부모 업데이트이고 두 개는 자식 업데이트입니다.

az iot du update init v5 \
    --update-provider <replace with child_1 update Provider> \
    --update-name <replace with child_1 update Name> \
    --update-version <replace with child_1 update Version> \
    --compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> \
    --file path=<replace with path(s) to your update file(s), including the full file name> \
az iot du update init v5 \
    --update-provider <replace with child_2 update Provider> \
    --update-name <replace with child_2 update Name> \
    --update-version <replace with child_2 update Version> \
    --compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> \
    --file path=<replace with path(s) to your update file(s), including the full file name> \
az iot du update init v5 \
    --update-provider <replace with the parent update Provider> \
    --update-name <replace with the parent update Name> \
    --update-version <replace with the parent update Version> \
    --compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> properties=<replace with any desired handler properties (JSON-formatted)> \
    --file path=<replace with path(s) to your update file(s), including the full file name> \
    --step updateId.provider=<replace with child_1 update provider> updateId.name=<replace with child_1 update name> updateId.version=<replace with child_1 update version> \
    --step updateId.provider=<replace with child_2 update provider> updateId.name=<replace with child_2 update name> updateId.version=<replace with child_2 update version> \

다음 단계