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: 예약 및 브로드캐스트 작업을 사용하여 프로그래밍 방식으로 작업을 구현하는 방법을 알아봅니다.