다음을 통해 공유


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