Azure CLI を使用してジョブのスケジュールとブロードキャストを行う
Azure CLI を使って、数百万台のデバイスを更新するジョブのスケジュールと追跡を行います。 ジョブを使用して、次の操作を行います。
- 必要なプロパティを更新する
- タグを更新する
- ダイレクト メソッドを呼び出す
概念的には、ジョブはこれらのアクションのいずれかをラップし、一連のデバイスに対して実行の進行状況を追跡します。 ジョブが操作するデバイスのセットは、デバイス ツイン クエリで定義します。 たとえば、バックエンド アプリでは、ジョブを使用して、10,000 台のデバイスに対して reboot メソッドを呼び出すことができます。これは、デバイス ツイン クエリで指定され、将来の時刻にスケジュールされます。 次に、このアプリケーションを使って、これらの各デバイスが reboot メソッドを受信し実行する進行状況を追跡できます。
デバイスの一括管理操作の管理にジョブがどのように役立つかについて詳しくは、「複数デバイスでのジョブをスケジュール設定する」をご覧ください。
Note
この記事で説明されている機能は、Standard レベルの IoT Hub でのみ使用できます。 Basic および Standard または Free レベルの IoT Hub の詳細については、ソリューションに適した IoT Hub のレベルの選択に関するページを参照してください。
前提条件
Azure CLI。 この記事のコマンドは、ブラウザーまたは (Windows Terminal などの) アプリで実行されるインタラクティブ CLI シェルである Azure Cloud Shell を使用して実行することもできます。 Cloud Shell を使用する場合は、何もインストールする必要はありません。 CLI をローカルで使用する場合、この記事では、Azure CLI バージョン 2.36 以降が必要です。 インストールされているバージョンを確認するには、
az --version
を実行します。 Azure CLI をローカルにインストールまたはアップグレードするには、Azure CLI のインストールに関する記事を参照してください。Azure サブスクリプション内の IoT ハブ。 ハブがまだない場合は、「IoT ハブの作成」の手順に従うことができます。
ダイレクト メソッドを呼び出すようにジョブをスケジュールする
ジョブを使って、1 台以上のデバイスでダイレクト メソッドを呼び出すことができます。
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} |
ジョブの対象となる 1 台以上のデバイスを定義するクエリ。 たとえば、1 台のデバイスのジョブでは次のクエリ条件を使用できます: deviceId = 'myExampleDevice' 。 |
ヒント
ダイレクト メソッドを呼び出すジョブ az iot hub job create コマンドをスケジュールする場合、省略可能なパラメーターである --method-name
と --method-payload
の両方の値を指定する必要があります。 ペイロードを受け入れないダイレクト メソッドの場合、--method-payload
パラメーターに null
を指定します。
デバイス ツインのプロパティを更新するジョブをスケジュールする
ジョブを使って、デバイス ツインの目的のプロパティを更新できます。
az iot hub job create コマンドを使って、以下のプレースホルダーを対応する値に置き換えます。 この例では、シミュレートされたデバイスで目的のツイン プロパティ 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} |
ジョブの対象となる 1 台以上のデバイスを定義するクエリ。 たとえば、1 台のデバイスのジョブでは次のクエリ条件を使用できます: deviceId = 'myExampleDevice' 。 |
関連するコンテンツ
Azure IoT SDK を使ってプログラムでジョブを実装する方法を学びます: 「ジョブのスケジュールとブロードキャスト」。