다음을 통해 공유


디바이스 업데이트로 가져올 업데이트 준비

이 문서에서는 새 업데이트를 가져오고 가져오기 매니페스트를 만들어 Azure Device Update for IoT Hub로 가져오기를 준비하는 방법을 설명합니다.

필수 조건

  • IoT Hub로 구성된 디바이스 업데이트 계정 및 인스턴스입니다.

  • IoT 허브 내에서 디바이스 업데이트를 위해 프로비전된 IoT 디바이스 또는 시뮬레이터입니다.

  • Azure CLI 명령을 실행하기 위한 Azure Cloud Shell의 Bash 환경입니다. Cloud Shell 시작을 선택하여 Cloud Shell을 열거나 Azure Portal의 위쪽 도구 모음에서 Cloud Shell 아이콘을 선택합니다.

    원하는 경우 Azure CLI 명령을 로컬로 실행할 수 있습니다.

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

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

디바이스에 대한 업데이트 파일 가져오기

디바이스 업데이트를 사용하여 디바이스에 배포할 업데이트 파일 또는 파일을 가져옵니다. OEM(원래 장비 제조업체) 또는 솔루션 통합업체에서 디바이스를 구입한 경우 해당 조직은 업데이트 파일을 만들지 않고도 업데이트를 제공합니다. 업데이트를 제공하는 방법을 알아보려면 OEM 또는 솔루션 통합자에 문의하세요. 조직에서 디바이스용 소프트웨어를 만드는 경우 해당 소프트웨어에 대한 업데이트도 만듭니다.

업데이트를 만들려면 시나리오에 따라 이미지 기반 또는 패키지 기반 업데이트 유형을 선택합니다.

이미지 기반, 패키지 기반 또는 프록시 업데이트 자습서를 시도하거나 참조를 위해 해당 자습서에서 샘플 가져오기 매니페스트 파일을 볼 수 있습니다.

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

업데이트 파일이 있고 기본 디바이스 업데이트 가져오기 개념에 익숙해지면 업데이트를 설명하는 가져오기 매니페스트를 만듭니다. 텍스트 편집기를 사용하여 JSON 가져오기 매니페스트를 수동으로 작성할 수 있지만 Azure CLI az iot du init v5 명령은 프로세스를 간소화합니다. 매니페스트 스키마 가져오기에 대한 자세한 내용은 디바이스 업데이트 가져오기 스키마 및 API 정보를 참조하세요.

az iot du init v5 명령은 다음 인수를 사용합니다. 지정하지 않은 경우 파생 --step 되는 것을 제외하고 --file모두 필요합니다. 위치 민감도는 다음과 입니다 --step --file.

  • , --update-name--update-version 매개 변수는 --update-provider각 업데이트에 updateId 대한 고유 식별자인 개체를 정의합니다.
  • --compat 호환성 개체는 이 업데이트와 호환되는 디바이스의 속성을 설명하는 이름-값 쌍 집합입니다. 하나의 공급자와 이름 조합만 사용하여 특정 호환성 속성 집합을 사용할 수 있습니다.
  • 매개 변수는 --step 디바이스의 업데이트 handler (예: microsoft/script:1, microsoft/swupdate:1또는 microsoft/apt:1) 및 이 업데이트와 관련된 properties 업데이트를 지정합니다. 두 번 이상 사용할 --step 수 있습니다.
  • 매개 변수는 --file 업데이트 파일에 대해 path 지정합니다. 한 번 이상 사용할 --file 수 있습니다.
az iot du update init v5 \
    --update-provider <provider> \
    --update-name <update name> \
    --update-version <update version> \
    --compat <property1>=<value> <property2>=<value> \
    --step handler=<handler> properties=<JSON-formatted handler properties> \
    --file path=<paths and full file names of your update files> 

다음 az iot du update init v5 명령은 예제 값을 보여줍니다.

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를 실행하는 경우 큰따옴표를 이스케이프하는 데 사용합니다 '\' .

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

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

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

프록시 업데이트와 같이 업데이트가 더 복잡한 경우 여러 가져오기 매니페스트를 만들어야 할 수 있습니다. 복잡한 업데이트의 az iot du update init v5 경우 Azure CLI 명령을 사용하여 부모 가져오기 매니페스트 및 일부 자 가져오기 매니페스트를 만들 수 있습니다.

다음 Azure CLI 명령에서 자리 표시자 값을 바꿉니다. 사용할 수 있는 값에 대한 자세한 내용은 스키마 및 API 가져오기 정보를 참조하세요. 다음 예제에서는 디바이스에 배포할 세 가지 업데이트, 부모 업데이트 및 두 개의 자식 업데이트를 보여 줍니다.

az iot du update init v5 \
    --update-provider <child_1 update provider> \
    --update-name <child_1 update name> \
    --update-version <child_1 update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> \
    --file path=<paths and full file names of your update files> 
az iot du update init v5 \
    --update-provider <child_2 update provider> \
    --update-name <child_2 update name> \
    --update-version <child_2 update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> \
    --file path=<paths and full file names of your update files> 
az iot du update init v5 \
    --update-provider <parent update provider> \
    --update-name <parent update name> \
    --update-version <parent update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> properties=<any handler properties, JSON-formatted> \
    --file path=<paths and full file names of your update files> \
    --step updateId.provider=<child_1 update provider> updateId.name=<child_1 update name> updateId.version=<child_1 update version> \
    --step updateId.provider=<child_2 update provider> updateId.name=<child_2 update name> updateId.version=<child_2 update version>