Azure Device Update for IoT Hub のデバイス グループを管理する

Azure Device Update for IoT Hub では、IoT デバイスのユーザー定義グループに更新プログラムをデプロイできます。 すべての Device Update マネージド デバイスはデバイス グループのメンバーですが、デバイス グループの定義は省略可能です。 または、Device Update によって提供される既定のデバイス グループにデプロイすることもできます。

ユーザー定義の Device Update タグ値を作成してデバイスに割り当てる場合、Device Update では、割り当てられたタグとデバイスの互換性プロパティに基づいてグループが自動的に作成されます。 デバイス グループごとに、Device Update では、異なるデバイス クラスを持つ複数のサブグループを作成できます。 Device Update は、タグのないデバイスを default デバイス グループに配置します。

この記事では、Azure portal または Azure CLI を使用して、ユーザー定義の Device Update デバイスのタグとグループを作成および管理する方法について説明します。 ユーザー定義または既定のデバイス グループに更新プログラムをデプロイするには、「デバイスの更新プログラムをデプロイする」を参照してください。

前提条件

始める前に、以下の前提条件に注意してください:

  • グループ割り当てが行われる前に、デバイスはデバイスアップデートに成功裏にオンボーディングされなければなりません。
  • デバイスはサポートされたプラグ アンド プレイモデルIDを報告しなければなりません。 サポートされているモデルIDの一覧については、 デバイスアップデートモデルをご覧ください。
  • IoT Edgeのシナリオでは、Device Update agentはモジュールとして動作し、適切なIDを通じてモデルIDを報告しなければなりません。

デバイスにタグを追加する

Device Updateデバイスグループを割り当てるには、IoT HubのDevice Update接続デバイスのターゲットセットにADUGroupタグを追加します。 Device Update エージェントがデバイス ID を使用してプロビジョニングされている場合は、デバイス ツインにタグを追加します。Device Update エージェントがモジュール ID を使用してプロビジョニングされている場合は、対応するモジュール ツインにタグを追加します。

Device Update ADUGroup タグは、次のデバイス ツインまたはモジュール ツインの例に示すように、キーと値の形式を使用します。

"etag": "",
"deviceId": "",
"deviceEtag": "",
"version": <version>,
"tags": {
   "ADUGroup": "<CustomTagValue>"
}

Important

ADUGroupタグを追加してもデバイスがデバイスアップデートにオンボーディングされません。 グループ割り当ては、デバイスアップデートがデバイスを正しく認識し管理した後にのみ行われます。

ツインの JSON 構文の詳細および例については、デバイス ツインの理解と使用に関する記事またはモジュール ツインの理解と使用に関する記事を参照してください。

ADUGroup タグには、次のプロパティと制限があります。

  • デバイスは、ADUGroup タグを 1 つだけ持ち、一度に 1 つの Device Update グループにのみ属することができます。 ADUGroup という名前の別のタグを追加すると、既存の ADUGroup 値がオーバーライドされます。
  • 予約値 Uncategorized と $default 以外の任意の値をタグに使用できます。
  • 200 文字を超えるタグ値は指定できません。
  • タグ値には、英数字と特殊文字の . - _ ~ を含めることができます。
  • ADUGroup のタグ名およびグループ名の値は、大文字と小文字が区別されます。

次のセクションでは、タグを追加および更新するいくつかの方法について説明します。

SDK を使用してタグを追加する

Device Update にデバイスを登録したら、RegistryManager を使用して、適切なタグでデバイス ツインまたはモジュール ツインを更新できます。 詳細については、次の記事をご覧ください。

ジョブを使用してタグを追加する

ジョブをスケジュールして、複数のデバイスで Device Update タグを追加または更新できます。 ジョブの操作例については、「複数デバイスでのジョブをスケジュール設定する」を参照してください。 Device Update エージェントがデバイス ID とモジュール ID のどちらでプロビジョニングされているかに応じて、ジョブを使用してデバイス ツインまたはモジュール ツインを更新できます。 詳細については、「ジョブのスケジュール設定とブロードキャスト」を参照してください。

注

この操作は、IoT Hub メッセージ クォータにカウントされます。 一度に 50,000 以上のデバイス ツインまたはモジュール ツインのタグを変更する場合は、1 日の IoT Hub メッセージ クォータを超える可能性があり、IoT Hub ユニットの追加購入が必要になる場合があります。 詳細については、クォータとスロットリングに関する記事を参照してください。

ツインを更新してタグを追加する

ADUGroup タグをデバイス ツインまたはモジュール ツインで直接追加または更新することもできます。

  1. Azure Portal で、IoT ハブに移動します。

  2. 左側のナビゲーション ウィンドウで、[デバイス管理] の [デバイス] を選択します。 IoT Edge デバイスがある場合は、代わりに [IoT Edge] を選択します。

  3. [デバイス] ページで、デバイスを選択します。

  4. デバイス ページで、上部のメニューから [デバイス ツイン] を選択するか、[モジュール ID] でモジュール ID を選択し、モジュール ツインを選択します。

  5. ツインでは、ユーザー定義の値に ADUGroup タグを追加します。 既存の ADUGroup タグ値を更新するには、別のユーザー定義の値で上書きします。

        "tags": {
                "ADUGroup": "<CustomTagValue>"
                }
    
  6. [保存] を選択します。

デバイス グループを表示する

  1. Azureポータルで、Device Updateインスタンスに接続されたIoTハブにアクセスしてください。

  2. 左側のナビゲーションの [デバイス管理] で [更新プログラム] オプションを選択します。

  3. [グループとデプロイ] タブを選択します。

    グループ化されていないデバイスのスクリーンショット。

グループを作成すると、コンプライアンスチャートとグループリストが更新されます。 Device Update のコンプライアンス チャートには、さまざまなコンプライアンス対応状態 (最新の更新状態、利用可能な新しい更新プログラムがある、更新プログラムのインストールが進行中) にあるデバイスの数が表示されます。 詳細については、「デバイス更新のコンプライアンス」を参照してください。

グループリストには既存のデバイスアップデートグループと、そのグループ内のデバイスで利用可能なアップデートが表示されます。 グループのデバイスクラス要件を満たさないデバイスは、対応する無効なグループに表示されます。 このビューから、グループの横にある [デプロイ] を選択することで、そのグループに利用できる最適な更新プログラムをデプロイできます。

更新プログラムのコンプライアンス ビューのスクリーンショット。

グループのデバイスの詳細を表示する

  1. [グループとデプロイ] タブで、グループの名前を選択します。

    [グループの詳細] ページでは、更新プログラムのコンプライアンス チャートには、さまざまなコンプライアンス状態にあるグループ メンバー デバイスの数が表示され、グループ メンバー デバイス リストには、デバイスの更新プロパティが表示されます。

    デバイス グループの詳細ビューのスクリーンショット。

  2. グループ内の個々のデバイスを選択して、IoT Hub のデバイスの詳細ページに移動します。

    デバイスの詳細ビューのスクリーンショット。

    IoT ハブのデバイスの詳細ビューのスクリーンショット。

デバイス グループからデバイスを削除する

デバイス グループからデバイスを削除するには、ツインの ADUGroup タグ値を null に変更し、[保存]を選択します。

    "tags": {
            "ADUGroup": "null"
            }

このアクションにより、デバイス ツインからグループ タグが削除され、デバイス グループからデバイスが削除されます。

デバイス グループの削除

Device Update はデバイス グループを自動的に作成し、履歴レコードやその他のユーザー ニーズに合わせてデバイス グループ、デバイス クラス、デプロイを保持します。自動的にクリーンアップされることはありません。 デバイス グループは、グループを個別に選択して削除するか、グループで az iot du device group delete Azure CLI コマンドを呼び出すことによって、Azure portal を使用して削除できます。

グループを削除するには、次の条件を満たす必要があります。

  • default グループであってはなりません。
  • メンバーデバイスが存在してはいけません。 つまり、Device Update インスタンスでプロビジョニングされたデバイスには、グループ名と一致する値を持つ ADUGroup タグを設定できません。
  • 関連付けられたアクティブなデプロイまたはキャンセルされたデプロイがあってはなりません。

注

上記の要件を満たすグループを削除できない場合は、グループの一部としてタグ付けされた異常なデバイスがあるかどうかを確認します。 異常なデバイスはデプロイを受け取ることができないため、グループ内のメンバー デバイスのリストには直接表示されません。

異常なデバイスがあるかどうかを確認するには、次の手順を実行します。

  1. Azure Portal で、IoT ハブに移動します。
  2. 左側のナビゲーションから [更新プログラム] を選択してから、[診断] タブを選択します。
  3. [不足しているデバイスの検索] セクションを展開します。

グループの一部としてタグ付けされた異常なデバイスがある場合は、グループを削除する前に、タグ値を変更するか、デバイスを削除する必要があります。

削除されたグループ名にデバイスが再び割り当てられた場合、Device Update によってグループが自動的に再作成されますが、関連付けられているデバイスやデプロイの履歴はありません。

Troubleshooting

デバイスにタグを付けてもグループが表示されない場合は、以下のトラブルシューティング手順を試してください:

  • タグの設定が正しくあるか確認してください。
  • デバイスに有効なプラグ アンド プレイモデルIDと有効なADUGroupタグが含まれているか確認してください。
  • IoT Hubのメッセージルートが正しく設定されているか確認してください。 詳細は「 メッセージルーティング」をご覧ください。
  • IoT HubがDevice Updateインスタンスと正しく関連付けられていることを確認してください。
  • デバイスアップデートの診断とエージェントのチェックを実行してください。
  • 必要ならデバイス同期を実行してください。

詳細については、Azure Device Update の プラグ アンド プレイ および Azure IoT Hub agent check の Device Update をご覧ください。