Azure CLI를 사용하여 작업 예약 및 브로드캐스트
Azure CLI를 사용하여 수백만 개의 디바이스를 업데이트하는 작업을 예약하고 추적합니다. 작업을 사용하여 다음을 수행합니다.
- desired 속성 업데이트
- tags 업데이트
- 직접 메서드 호출
개념적으로 작업(job)은 이러한 작업(action) 중 하나를 래핑하고 디바이스 집합에 대해 실행 진행 상태를 추적합니다. 디바이스 쌍 쿼리는 작업이 상호 작용하는 디바이스 집합을 정의합니다. 예를 들어 백 엔드 앱은 작업을 사용하여 디바이스 쌍 쿼리로 지정되고 향후에 예약된 10,000개 디바이스에서 다시 부팅 메서드를 호출할 수 있습니다. 그러면 이러한 각 디바이스에서 다시 부팅 메서드를 받고 실행할 때 해당 애플리케이션에서 진행 상황을 추적할 수 있습니다.
작업이 대량 디바이스 관리 작업을 관리하는 데 도움이 되는 방법에 대한 자세한 내용은 여러 디바이스에서 작업 예약을 참조 하세요.
참고 항목
이 문서에서 설명하는 기능은 IoT Hub의 표준 계층에서만 사용할 수 있습니다. 기본 및 표준/무료 IoT Hub 계층에 대한 자세한 내용은 솔루션에 적합한 IoT Hub 계층 선택을 참조하세요.
필수 조건
Azure CLI 브라우저 또는 Windows 터미널과 같은 앱에서 실행되는 대화형 CLI 셸인 Azure Cloud Shell을 사용하여 이 문서의 명령을 실행할 수도 있습니다. Cloud Shell을 사용하는 경우에는 아무 것도 설치할 필요가 없습니다. 이 문서에 따라 CLI를 로컬에서 설치하여 사용하려면 Azure CLI 버전 2.36 이상이 필요합니다. 설치되어 있는 버전을 확인하려면
az --version
을 실행합니다. Azure CLI를 로컬로 설치하거나 업그레이드하려면 Azure CLI 설치를 참조하세요.Azure 구독의 IoT Hub 아직 허브가 없는 경우 IoT Hub 만들기의 단계를 따를 수 있습니다.
직접 메서드를 호출하도록 작업 예약
작업을 사용하여 하나 이상의 디바이스에서 직접 메서드를 호출할 수 있습니다.
az iot hub job create 명령을 사용하여 다음 자리 표시자를 해당 값으로 바꿉니다. 이 명령은 대상 디바이스에서 메서드 이름을 호출하는 작업을 예약합니다.
az iot hub job create --hub-name {HubName} --job-id {JobName} \
--job-type scheduleDeviceMethod \
--method-name {MethodName} --method-payload {MethodPayload} \
--query-condition "{DeviceQuery}"
자리 표시자 | 값 |
---|---|
{HubName} |
IoT Hub의 이름입니다. |
{JobName} |
예약된 작업의 이름입니다. 작업 이름은 고유하므로 이 명령을 실행할 때마다 다른 작업 이름을 선택합니다. |
{MethodName} |
직접 메서드의 이름입니다. |
{MethodPayload} |
직접 메서드에 제공할 페이로드입니다. 페이로드가 필요하지 null 않은 경우 . |
{DeviceQuery} |
작업을 대상으로 지정할 디바이스 또는 디바이스를 정의하는 쿼리입니다. 예를 들어 단일 디바이스 작업은 다음 쿼리 조건을 deviceId = 'myExampleDevice' 사용할 수 있습니다. |
팁
직접 메서드를 호출하는 작업 az iot hub job create 명령을 예약할 때는 --method-payload
매개 변수와 --method-name
선택적 매개 변수 모두에 대한 값을 지정해야 합니다. 페이로드를 허용하지 않는 직접 메서드의 경우 --method-payload
매개 변수에 대해 null
을 지정합니다.
디바이스 쌍 속성을 업데이트하는 작업 예약
작업을 사용하여 디바이스 쌍 desired 속성을 업데이트할 수 있습니다.
az iot hub job create 명령을 사용하여 다음 자리 표시자를 해당 값으로 바꿉니다. 이 예제에서는 시뮬레이션된 디바이스에 대한 desired 트윈 속성 BuildingNo
의 값을 45로 설정하는 작업을 예약합니다.
az iot hub job create --hub-name {HubName} --job-id {JobName} \
--job-type scheduleUpdateTwin \
--twin-patch '{JSONTwinPatch}' \
--query-condition "{DeviceQuery}"
자리 표시자 | 값 |
---|---|
{HubName} |
IoT Hub의 이름입니다. |
{JobName} |
예약된 작업의 이름입니다. 작업 이름은 고유하므로 이 명령을 실행할 때마다 다른 작업 이름을 선택합니다. |
{JSONTwinPatch} |
디바이스 쌍의 원하는 속성을 업데이트하는 데 사용할 JSON 코드 조각입니다. 예들 들어 {"properties":{"desired": {"BuildingNo": 45}}} 입니다. |
{DeviceQuery} |
작업을 대상으로 지정할 디바이스 또는 디바이스를 정의하는 쿼리입니다. 예를 들어 단일 디바이스 작업은 다음 쿼리 조건을 deviceId = 'myExampleDevice' 사용할 수 있습니다. |
관련 콘텐츠
Azure IoT SDK: 예약 및 브로드캐스트 작업을 사용하여 프로그래밍 방식으로 작업을 구현하는 방법을 알아봅니다.