IoT Hub 에이전트에 대한 Azure 디바이스 업데이트 프로비전
디바이스 업데이트 모듈 에이전트는 동일한 논리 디바이스의 일부로 IoT Hub에 연결하는 다른 시스템 프로세스 및 IoT Edge 모듈 과 함께 실행할 수 있습니다. 이 문서에서는 디바이스 업데이트 에이전트를 모듈 ID로 프로비전하는 방법을 설명합니다.
참고 항목
디바이스 업데이트 에이전트를 사용하는 경우 버전 1.0.0 GA(일반 공급) 버전인지 확인합니다. IoT 디바이스 쌍의 속성 섹션에서 설치된 버전의 디바이스 업데이트 에이전트 및 배달 최적화 에이전트를 확인할 수 있습니다. 자세한 내용은 디바이스 및 그룹을 최신 디바이스 업데이트 릴리스로 마이그레이션을 참조하세요.
모듈 ID 및 디바이스 ID
각 Azure IoT Hub 디바이스 ID에서 최대 50개의 모듈 ID를 만들 수 있습니다. 각 모듈 ID는 모듈 ID 쌍을 암시적으로 생성합니다. 디바이스 쪽에서 IoT Hub 디바이스 SDK를 사용하여 각각 IoT Hub에 대한 독립적인 연결을 여는 모듈을 만들 수 있습니다.
모듈 ID 및 모듈 ID 쌍은 디바이스 ID 및 디바이스 쌍과 유사한 기능을 제공하지만 세분화됩니다. 자세한 내용은 IoT Hub의 모듈 쌍 이해 및 사용을 참조하세요.
디바이스 업데이트 에이전트를 모듈 ID로 프로비전하는 경우 디바이스와 디바이스 업데이트 서비스 간의 모든 통신은 모듈 쌍을 통해 발생해야 합니다. 디바이스 그룹을 만들 때 디바이스의 모듈 쌍에 태그를 지정 해야 합니다. 디바이스 수준 에이전트에서 모듈 ID로 에이전트를 추가하도록 마이그레이션하는 경우 디바이스 쌍을 통해 통신한 이전 에이전트를 제거합니다.
지원되는 업데이트 유형
디바이스 업데이트는 공기 업데이트 유형을 통해 다음 IoT 디바이스를 지원합니다.
- IoT Edge 및 비 IoT Edge Linux 디바이스:
- Eclipse ThreadX 디바이스 업데이트 에이전트
- 게이트웨이 뒤에서 연결이 끊긴 디바이스
패키지 업데이트 준비
패키지 기반 업데이트를 설치하도록 IoT 디바이스 또는 IoT Edge 디바이스를 설정하려면 다음 단계를 수행하여 컴퓨터의 리포지토리에 추가 packages.microsoft.com
합니다.
디바이스 업데이트 에이전트를 설치하려는 컴퓨터 또는 IoT 디바이스에서 터미널 창을 엽니다.
디바이스의 운영 체제와 일치하는 리포지토리 구성을 설치합니다. 예를 들면 다음과 같습니다.
curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
생성된 목록을 sources.list.d 디렉터리에 복사합니다.
sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
Microsoft GPG 공개 키를 설치합니다.
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
디바이스 업데이트 에이전트 프로비전
디바이스 업데이트 에이전트를 IoT Edge 사용 디바이스 또는 비 IoT Edge IoT 디바이스에서 모듈 ID로 프로비전할 수 있습니다. 디바이스 에서 IoT Edge를 사용하도록 설정했는지 확인하려면 등록된 디바이스 보기 및 프로비전 정보를 검색합니다.
릴리스 페이지의 자산 섹션에서 사용할 샘플 이미지를 다운로드할 수 있습니다. Tutorial_RaspberryPi3.zip swUpdate 파일은 Raspberry Pi B3+ 보드에 플래시할 수 있는 기본 이미지입니다. .gz 파일은 디바이스 업데이트를 통해 가져올 수 있는 업데이트입니다. 자세한 내용은 Raspberry Pi 이미지를 사용하여 IoT Hub용 Azure Device Update를 참조하세요.
IoT Edge 사용 디바이스
다음 지침에 따라 IoT Edge 사용 디바이스에서 디바이스 업데이트 에이전트를 프로비전합니다.
단일 Linux IoT Edge 디바이스를 수동으로 프로비전하는 지침에 따릅니다.
다음 명령을 실행하여 디바이스 업데이트 이미지 업데이트 에이전트를 설치합니다.
sudo apt-get install deviceupdate-agent
Device Update 패키지 업데이트 에이전트 설치
packages.microsoft.com 최신 에이전트 버전의 경우 디바이스에서 패키지 목록을 업데이트하고 다음을 사용하여 디바이스 업데이트 에이전트 패키지 및 해당 종속성을 설치합니다.
sudo apt-get update
sudo apt-get install deviceupdate-agent
릴리스 후보(rc) 에이전트 버전의 경우 릴리스에서 디바이스 업데이트 에이전트를 설치하려는 컴퓨터로 .deb 파일을 다운로드한 다음 다음 명령을 실행합니다.
sudo apt-get install -y ./"<PATH TO FILE>"/"<.DEB FILE NAME>"
연결이 끊긴 디바이스 시나리오에 대해 MCC(Microsoft Connected Cache)를 설정하는 경우 다음과 같이 배달 최적화 APT 플러그 인을 설치합니다.
sudo apt-get install deliveryoptimization-plugin-apt
비IoT Edge 사용 디바이스에서
다음 지침에 따라 IoT Edge를 설치하지 않고 Linux IoT 디바이스에서 디바이스 업데이트 에이전트를 프로비전합니다.
Azure IoT ID 서비스 설치의 지침 에 따라 최신 버전의 IoT ID 서비스를 설치합니다.
Azure IoT ID 서비스 구성의 지침에 따라 IoT ID 서비스를 구성합니다.
다음 명령을 실행하여 디바이스 업데이트 에이전트를 설치합니다.
sudo apt-get install deviceupdate-agent
참고 항목
IoT 디바이스가 IoT ID 서비스를 번들로 묶는 IoT ID 서비스 또는 IoT Edge를 실행할 수 없는 경우에도 디바이스 업데이트 에이전트를 설치하고 연결 문자열 사용하여 구성할 수 있습니다.
디바이스 업데이트 에이전트 구성
디바이스 업데이트 에이전트를 설치한 후 다음 명령을 실행하여 디바이스 업데이트 구성 파일을 편집합니다.
sudo nano /etc/adu/du-config.json
du-config.json 파일에서 자리 표시자가 있는 Place value here
모든 값을 설정합니다. 프로비저닝에 IoT ID 서비스를 사용하는 에이전트의 경우 해당 값을 AIS
변경 connectionType
하고 필드를 빈 문자열로 설정합니다ConnectionData
. 예제 는 예제 "du-config.json" 파일 내용을 참조하세요.
연결 문자열 사용
테스트 또는 제한된 디바이스에서 IoT ID 서비스를 사용하지 않고 디바이스 업데이트 에이전트를 구성할 수 있습니다. 연결 문자열 사용하여 모듈 또는 디바이스에서 디바이스 업데이트 에이전트를 프로비전할 수 있습니다.
Azure Portal에서 기본 연결 문자열 복사합니다. 디바이스 업데이트 에이전트가 모듈 ID로 구성된 경우 모듈의 기본 연결 문자열 복사합니다. 그렇지 않으면 디바이스의 기본 연결 문자열 복사합니다.
디바이스 업데이트 에이전트를 설치한 컴퓨터 또는 IoT 디바이스의 터미널 창에서 다음 명령을 실행하여 디바이스 업데이트 구성 파일을 편집합니다.
- Ubuntu 에이전트의 경우:
sudo nano /etc/adu/du-config.json
. - Yocto 참조 이미지의 경우:
sudo nano /adu/du-config.json
.
- Ubuntu 에이전트의 경우:
du-config.json 파일에서 자리 표시자가 있는
Place value here
모든 값을 설정하고 복사한 기본 연결 문자열 필드 값으로connectionData
입력합니다. 예제 는 예제 "du-config.json" 파일 내용을 참조하세요.
디바이스 업데이트 에이전트 시작
디바이스 업데이트 에이전트를 시작하고 디바이스에서 성공적으로 실행되고 있는지 확인합니다.
디바이스 업데이트 에이전트를 설치한 컴퓨터 또는 IoT 디바이스의 터미널 창에서 다음 명령을 실행하여 에이전트를 다시 시작합니다.
sudo systemctl restart deviceupdate-agent
다음 명령을 실행하여 에이전트 상태를 확인합니다.
sudo systemctl status deviceupdate-agent
상태가
OK
표시됩니다.IoT Hub 포털 페이지에서 디바이스 또는 IoT Edge로 이동하여 구성한 디바이스를 찾고 모듈로 실행되는 디바이스 업데이트 에이전트를 확인합니다. 예시:
프록시 서버 뒤에서 디바이스 업데이트 에이전트 사용
디바이스 업데이트 에이전트를 실행하는 디바이스는 IoT Hub와 통신하기 위해 HTTPS 요청을 보냅니다. 프록시 서버를 사용하는 네트워크에 디바이스를 연결한 경우 서버를 통해 통신하도록 디바이스 업데이트 시스템 서비스를 구성해야 합니다.
디바이스 업데이트를 구성하기 전에 프록시 URL이 있는지 확인합니다. 프록시 URL은 protocol://proxy_host:proxy_port 형식입니다.
다음 명령을 실행하여 디바이스 업데이트 구성으로 이동합니다.
sudo systemctl edit deviceupdate-agent.service
구성에 프록시 세부 정보 추가
[Service]
Environment="https_proxy=<Proxy URL>"
에이전트를 다시 시작하여 변경 내용을 적용합니다.
sudo systemctl daemon-reload
sudo systemctl restart deviceupdate-agent
sudo systemctl status deviceupdate-agent
디바이스 업데이트 에이전트 빌드 및 실행
사용자 지정 디바이스 업데이트 에이전트를 빌드하고 수정할 수도 있습니다. 디바이스 업데이트 에이전트를 빌드하는 방법의 지침에 따라 원본에서 디바이스 업데이트 에이전트를 빌드합니다.
에이전트가 성공적으로 빌드되면 IoT Hub용 디바이스 업데이트 참조 에이전트 실행에 따라 에이전트 를 실행합니다. 에이전트를 이미지에 통합하는 데 필요한 변경을 수행하려면 디바이스 업데이트 에이전트 코드를 수정하는 방법을 따르세요.
문제 해결
문제가 발생하면 IoT Hub용 디바이스 업데이트 문제 해결 가이드를 검토하여 문제를 해결하고 Microsoft에 제공하는 데 필요한 정보를 수집합니다.