Azure IoT Central アプリケーションでデバイスを一括管理する

Azure IoT Central を使い、接続されている大量のデバイスを、ジョブを通して管理できます。 ジョブを使用すると、デバイスおよびクラウドのプロパティを一括更新してコマンドを実行することができます。 この記事では、自分のアプリケーションでジョブを使用する方法と、インポートとエクスポートの機能の使用方法について説明します。

IoT Central REST API を使用してジョブを管理する方法については、「IoT Central REST API を使用してデバイスを管理する方法」を参照してください。

ヒント

定期的なジョブを作成するときは、Microsoft アカウントまたは Microsoft Entra アカウントを使用してアプリケーションにサインインします。 Microsoft Entra グループを使用してサインインすると、グループに関連付けられている Microsoft Entra トークンが将来のある時点で期限切れになり、ジョブが失敗する可能性があります。

ジョブの作成と実行

次の例では、デバイスのグループに対してライトしきい値を設定するジョブを作成および実行する方法について説明します。 ジョブを作成して実行するには、ジョブ ウィザードを使用します。 後で実行するジョブを保存できます:

  1. 左側のペインで、 [ジョブ] を選択します。

  2. + 新規を選択します。

  3. [ジョブの構成] ページで、作成するジョブを識別するための名前と説明を入力します。

  4. アプリケーションで組織を使用する場合、その組織を選択してジョブを関連付けます。 組織内のユーザーのみがジョブを表示または変更できます。 ユーザーのロールによって、ユーザーが持つアクセス許可が決定されます。

  5. ジョブを適用するターゲットのデバイス グループを選択します。 お使いのアプリケーションで組織が使用されている場合、使用可能なデバイス グループは、選択した組織によって決まります。 ジョブ構成が適用されるデバイスの数は、 [デバイス グループ] セクションの下で確認できます。

  6. [ ジョブの種類]として [Cloud プロパティ][プロパティ][コマンド][デバイス テンプレートの変更]、または [エッジ配置マニフェストの変更] を選択します。 以下を構成するには、次の手順に従います。

    • プロパティ ジョブ—プロパティを選択し、その新しい値を設定します。 プロパティ ジョブによって、複数のプロパティを設定できます。
    • コマンド ジョブ—実行するコマンドを選択します。
    • デバイス テンプレートの変更 ジョブ—デバイス グループ内のデバイスに割り当てるデバイス テンプレートを選択します。
    • エッジ配置マニフェストの変更 ジョブ—デバイス グループ内の IoT Edge デバイスに割り当てる IoT Edge 配置マニフェストを選択します。

    [保存] を選択して終了すると、[ジョブ] ページの保存されているジョブの一覧にジョブが追加されます。 後から、保存されているジョブの一覧からジョブに戻ることができます。

  7. [次へ] を選択して、 [配信オプション] ページに移動します。 [配信オプション] ページでは、このジョブの [バッチ] および [キャンセルしきい値] の配信オプションを設定できます。

    バッチを使用すると、多数のデバイスに対してジョブを分散させることができます。 ジョブは複数のバッチに分割され、各バッチにはデバイスのサブセットが含まれます。 バッチはキューに入れられ、順番に実行されます。

    キャンセルしきい値を使用すると、エラーの数が設定した制限を超えた場合に、ジョブを自動的にキャンセルできます。 しきい値は、ジョブ内のすべてのデバイス、または個々のバッチに適用できます。

  8. [次へ] を選択して、 [スケジュール] ページに移動します。 [スケジュール] ページでは、今後のジョブを実行するスケジュールを有効にすることができます。

    スケジュールの繰り返しオプションを選択します。 次の頻度で実行するようにジョブを設定できます。

    • 1 回限り
    • 毎日
    • 週単位

    スケジュールされたジョブの開始日時を設定します。 日付と時刻は、デバイスのローカル時刻ではなく、タイム ゾーンに固有のものです。

    定期的なスケジュールを終わらせるには、次のように選択します。

    • [On this day]\(この日\) を選択すると、スケジュールの終了日が設定されます。
    • [After]\(反復回数\) を選択すると、ジョブを実行する回数が設定されます。

    スケジュールされたジョブは常に、時間の経過と共にデバイス グループのメンバーシップに変化があっても、そのデバイス グループのデバイスに対して実行されます。

  9. [次へ] を選択して、 [レビュー] ページに移動します。 [レビュー] ページには、ジョブ構成の詳細が表示されます。 [スケジュール] を選択し、ジョブの日程を計画します。

    Screenshot of scheduled job wizard review page.

  10. ジョブの詳細ページには、スケジュールされたジョブに関する情報が表示されます。 スケジュールされたジョブが実行されると、ジョブ インスタンスの一覧が表示されます。 スケジュールされたジョブの実行は、過去 30 日間のジョブ一覧にも含まれます。

    このページでは、ジョブのスケジュールを解除したり、スケジュール済みのジョブを編集したりできます。 スケジュール済みジョブの一覧からスケジュール済みジョブに戻ることができます。

  11. ジョブ ウィザードで、ジョブの日程を計画せず、直接実行することを選択できます。

  12. ジョブは、保留中実行中完了のフェーズを通過します。 ジョブ実行の詳細には、結果メトリック、期間の詳細、デバイス一覧グリッドが含まれています。

    ジョブが完了すると、 [結果のログ] を選択して、デバイスやその状態の値など、ジョブの詳細の CSV ファイルをダウンロードすることができます。 この情報は、トラブルシューティングに役立つことがあります。

    Screenshot that shows the device status in IoT Central.

  13. これで、 [ジョブ] ページの [過去30日間] の一覧にジョブが表示されるようになります。 このページには、現在実行中のジョブと以前実行または保存したジョブの履歴が表示されます。

    Note

    以前に実行したジョブの 30 日間の履歴を表示できます。

ジョブの管理

実行中のジョブを停止するには、ジョブを開いて [停止] を選択します。 ジョブが停止されたことを反映するように、ジョブの状態が変更されます。 [概要] セクションには、完了、失敗、または保留中のデバイスが表示されます。

ジョブが停止状態になったら、[続行] を選択してジョブの実行を再開することができます。 ジョブが再び実行されるようになったことを反映して、ジョブの状態が変更されます。 概要 セクションは、引き続き最新の進行状況で更新されます。

ジョブのコピー

既存のジョブをコピーするには、実行されたジョブを選択します。 [ジョブの結果] ページまたは [ジョブの詳細] ページで [コピー] を選択します。 ジョブ構成のコピーが開き、編集することができます。また コピー がジョブ名に追加されます。

ジョブ ステータスを表示

ジョブが作成されたら、[状態] 列は、最新のジョブ ステータス メッセージで更新されます。 可能なジョブの状態の値を次の表に示します。

ステータス メッセージ ステータスの意味
完了 このジョブはすべてのデバイスで実行されました。
Failed このジョブは失敗し、デバイスで完全には実行されませんでした。
保留中 このジョブはデバイスでまだ実行が開始されていません。
実行中 このジョブはデバイスで現在実行中です。
Stopped ユーザーがこのジョブを手動で停止しました。
取り消し済み このジョブは、 [配信オプション] ページで設定されたしきい値を超えたため、キャンセルされました。

ステータス メッセージには、ジョブ内のデバイスの概要が続きます。 可能なデバイスの状態の値を次の表に示します。

ステータス メッセージ ステータスの意味
成功 ジョブが正常に実行されたデバイスの数。
Failed ジョブの実行が失敗したデバイスの数。

ジョブの状態と影響を受けるすべてのデバイスを表示するには、ジョブを開きます。 各デバイス名の隣に、次のステータス メッセージのいずれかが表示されます。

ステータス メッセージ ステータスの意味
完了 このデバイスでジョブが実行されました。
Failed このデバイスでジョブの実行が失敗しました。 エラー メッセージに詳細情報が表示されます。
保留中 このデバイスではジョブがまだ実行されていません。

ジョブの詳細やデバイスの一覧やその状態の値などを含む CSV ファイルをダウンロードするには、 [結果のログ] を選択します。

デバイス一覧のフィルター処理

[ジョブの詳細] ページでフィルター アイコンを選択すると、デバイスの一覧をフィルター処理できます。 [デバイス ID] または [状態] フィールドでフィルター処理できます。

Screenshot that shows the options for filtering a job device list.

デバイス一覧の列をカスタマイズする

列のオプション アイコンを選択して、デバイスの一覧に列を追加できます。

Screenshot that shows the icon for column options.

[列のオプション] ダイアログ ボックスを使用して、デバイスの一覧の列を選択します。 表示する列を選択し、右矢印を選択して、[OK] を選択します。 使用できるすべての列を選択するには、[すべて選択] を選択します。 選択した列が、デバイス一覧に表示されます。

選択した列は、ユーザー セッション全体、またはアプリケーションにアクセスできるユーザー セッション間で保持されます。

ジョブの再実行

失敗したデバイスを含むジョブは再実行することができます。 [Rerun on failed]\(失敗したら再実行\) を選択します。

ジョブの名前と説明を入力して、[ジョブの再実行] を選択します。 失敗したデバイスで操作を再試行する新しいジョブが送信されます。

Note

Azure IoT Central アプリケーションから 5 つより多くのジョブを同時に実行することはできません。

ジョブが完了し、ジョブのデバイス一覧にあるデバイスを削除すると、デバイス エントリでデバイス名に削除済みと表示されます。 削除されたデバイスでは、詳細リンクを利用できません。

デバイスのインポート

アプリケーションに多数のデバイスを登録するには、CSV ファイルからデバイスを一括してインポートできます。 CSV ファイルの例については、Azure サンプル リポジトリを参照してください。 CSV ファイルには、次の列ヘッダーが含まれている必要があります。

説明
IOTC_DEVICEID デバイス ID は、このデバイスの接続に使用される一意識別子です。 デバイス ID には、文字、数字、および - 文字を含めることができます (スペースなし)。 最大長は 128 文字です。
IOTC_DEVICENAME 省略可能。 デバイス名は、アプリケーション全体に表示されるフレンドリ名です。 指定しない場合、デバイス名はデバイス ID と同じになります。 最大長は 148 文字です。

アプリケーションにデバイスを一括登録する方法:

  1. 左側のウィンドウで [デバイス] を選択します。

  2. 左側のパネルで一括作成するデバイスのデバイス テンプレートを選択します。

    Note

    まだデバイス テンプレートがない場合は、[すべてのデバイス] からデバイスをインポートし、テンプレートなしでそれらを登録することができます。 デバイスがインポートされた後に、それらをテンプレートに移行できます。

  3. インポートを選択します。

  4. デバイスを割り当てる組織を選択します。 インポートするデバイスはすべて、同じ組織に割り当てられます。 デバイスをさまざまな組織に割り当てるには、組織ごとに 1 つ、複数のインポート ファイルを作成します。 または、すべてをルート組織にアップロードしてから、UI 内で適切な組織に割り当て直します。

  5. インポートするデバイス ID の一覧を含む CSV ファイルを選択します。

  6. ファイルがアップロードされると、デバイスのインポートが開始されます。 インポートの状態は、[Device Operations](デバイスの操作) パネルで追跡できます。 このパネルはインポートの開始後に自動的に表示されます。または、右上隅のベルのアイコンを使用してアクセスすることもできます。

  7. インポートが完了すると、[Device Operations](デバイスの操作) パネルに成功メッセージが表示されます。

    Screenshot that shows a successful device import.

デバイスのインポート操作が失敗した場合は、[Device Operations](デバイスの操作) パネルにエラー メッセージが表示されます。 すべてのエラーをキャプチャしたログ ファイルが生成されており、ダウンロードできます。

デバイスで認証に SAS トークンを使用している場合は、IoT Central アプリケーションから CSV ファイルをエクスポートします。 エクスポートされた CSV ファイルに、デバイス ID と SAS キーが含まれています。

デバイスが X.509 を使って認証を行う場合は、X.509 登録グループのルート証明書または中間証明書を使って、デバイス用の X.509 リーフ証明書を生成します。 インポートしたデバイス ID をリーフ証明書の CNAME 値として使用します。

デバイスのエクスポート

実際のデバイスを IoT Central に接続するには、その接続文字列が必要です。 デバイスの詳細を一括エクスポートして、デバイスの接続文字列を作成するために必要な情報を取得することができます。 エクスポート プロセスでは、選択したすべてのデバイスのデバイス ID、デバイス名、キーを含む CSV ファイルが作成されます。

アプリからデバイスを一括でエクスポートするには:

  1. 左側のウィンドウで [デバイス] を選択します。

  2. 左側のペインで、デバイスをエクスポートするデバイス テンプレートを選択します。

  3. エクスポートするデバイスを選択して、[エクスポート] アクションを選択します。

  4. エクスポート プロセスが開始します。 状態は、[Device Operations](デバイスの操作) パネルを使用して追跡できます。

  5. エクスポートが完了すると、生成されたファイルをダウンロードするリンクと共に成功メッセージが表示されます。

  6. [ファイルのダウンロード] リンクを選択して、ディスク上のローカル フォルダーにファイルをダウンロードします。

    Screenshot that shows a successful device export.

  7. エクスポートされた CSV ファイルには、デバイス ID、デバイス名、デバイス キー、および X509 証明書拇印の列が含まれています。

    • IOTC_DEVICEID
    • IOTC_DEVICENAME
    • IOTC_SASKEY_PRIMARY
    • IOTC_SASKEY_SECONDARY
    • IOTC_X509THUMBPRINT_PRIMARY
    • IOTC_X509THUMBPRINT_SECONDARY

実際のデバイスを IoT Central アプリケーションに接続する方法について詳しくは、「デバイスの接続方法」をご覧ください。

次のステップ

ここでは、Azure IoT Central アプリケーションでデバイスを一括管理する方法について説明しました。お勧めする次のステップは、デバイス テンプレートを編集する方法の学習です。