Azure portal を使用した IoT デバイスおよびモジュールの自動管理

Azure IoT Hub の自動デバイス管理では、多数のデバイスを管理するという反復的で複雑なタスクの多くを自動化できます。 自動デバイス管理では、対象となる一連のデバイスをプロパティに基づいて設定し、必要な構成を定義しておくと、デバイスがスコープに適合したときに、IoT Hub によってデバイスが更新されます。 この更新は、自動デバイス構成 または 自動モジュール構成 を使用して行われます。これにより、完了やコンプライアンスの概況を把握し、マージや競合に対処し、構成を段階的なアプローチで展開することができます。

Note

この記事で説明されている機能は、Standard レベルの IoT Hub でのみ使用できます。 Basic および Standard または Free レベルの IoT Hub の詳細については、ソリューションに適した IoT Hub のレベルの選択に関するページを参照してください。

自動デバイス管理では、一連のデバイス ツインまたはモジュール ツインが必要なプロパティで更新され、ツインで報告されたプロパティに基づくサマリーが報告されます。 この機能では、構成という新しいクラスと JSON ドキュメントが導入されています。構成には、次の 3 つの要素が含まれています。

  • ターゲット条件は、更新されるデバイス ツインまたはモジュール ツインのスコープ (範囲) を定義します。 ターゲット条件は、ツイン タグおよび報告されたプロパティに関するクエリとして指定されます。

  • ターゲット コンテンツは、ターゲットのデバイス ツインまたはモジュール ツイン内、どのプロパティを追加または更新するのかを定義します。 このコンテンツには、変更するプロパティのセクションへのパスが含まれます。

  • メトリック: 各種の構成状態 (成功進行中エラーなど) の集計カウントを定義します。 カスタム メトリックは、ツインから報告されたプロパティに関するクエリとして指定されます。 システム メトリックは、ツインの更新状態を測定する既定のメトリックです (対象となるツインの数や、正常に更新されたツインの数など)。

自動構成は、構成が作成された直後に初めて実行され、その後は 5 分間隔で実行されます。 自動構成が実行されるたびに、メトリックのクエリが実行されます。 Standard レベルの IoT ハブでは、最大 100 個の自動構成がサポートされ、Free レベルの IoT ハブでは 10 個がサポートされています。 スロットルの制限も適用されます。 詳細については、「クォータと調整」を参照してください。

ツインを実装する

自動デバイス構成では、クラウドとデバイスとの間で状態を同期するために、デバイス ツインを使う必要があります。 詳細については、「IoT Hub のデバイス ツインの理解と使用」を参照してください。

自動モジュール構成では、クラウドとモジュール間で状態を同期するために、モジュール ツインを使う必要があります。 詳細については、「IoT Hub のモジュール ツインの理解と使用」を参照してください。

タグを使用してツインをターゲットにする

構成を作成する前に、影響の範囲内に含めるデバイスまたはモジュールを指定する必要があります。 Azure IoT Hub では、デバイス ツインのタグを使用してデバイスが識別され、モジュール ツインのタグを使用してモジュールが識別されます。 各デバイスまたはモジュールには複数のタグを設定することができ、ソリューションに適した任意の方法で定義できます。 たとえば、複数の場所のデバイスを管理する場合には、デバイス ツインに次のタグを追加します。

"tags": {
	"location": {
		"state": "Washington",
		"city": "Tacoma"
    }
},

構成を作成する

Standard レベルの IoT ハブでは、最大 100 個の自動構成を作成でき、Free レベルの IoT ハブで 10 個を作成できます。 詳細については、「クォータと調整」を参照してください。

  1. Azure portal で IoT Hub に移動します。

  2. 左側のナビゲーション ウィンドウで、[構成とデプロイ] を選択します。

  3. [追加] を選択し、ドロップダウン リストから [デバイス ツインの構成] または [モジュール ツインの構成] を選択します。

    Screenshot showing how to add a configuration.

構成を作成するには、5 つの手順があります。 次のセクションで、手順ごとに説明します。

名前とラベル

  1. 構成に一意の名前を付けます。名前は最大 128 文字で指定します。 小文字と次の特殊文字: -+%_*!' を使用できます。 スペースは使用できません。

  2. 構成を追跡するためのラベルを追加します。 ラベルは、構成を説明する名前の対で指定します。 たとえば、HostPlatform, Linux または Version, 3.0.1 です。

  3. [次へ] を選択して、次のステップに進みます。

ツインの設定

このセクションでは、ターゲットのデバイス ツインまたはモジュール ツインの目的のプロパティで設定される内容を定義します。 設定のセットごとに、2 つの入力項目があります。 1 つ目は、ツイン パスです。これは、設定されるプロパティの、ツイン内での JSON セクションへのパスです。 2 つ目は、そのセクションに挿入される JSON コンテンツです。

たとえば、ツイン パスを properties.desired.chiller-water に設定し、次の JSON コンテンツを指定することができます。

{
  "temperature": 66,
  "pressure": 28
}

Screenshot of setting the device or module twin property and json content.

ツイン パス全体を指定し、角かっこなしの値を指定することで、個別の設定を行うこともできます。 たとえば、ツイン パス properties.desired.chiller-water.temperature で、コンテンツを 66 に設定します。 次に、pressure プロパティの新しいツイン設定を作成します。

2 つ以上の構成で同じツイン パスがターゲットとなった場合は、優先度が最も高い構成のコンテンツが適用されます (優先度は手順 4 で定義します)。

既存のプロパティを削除する場合は、プロパティの値を null に指定します。

[デバイス ツインの設定の追加] または [Add Module Twin Setting](モジュール ツイン設定の追加) を選択して、設定を追加することもできます。

ターゲット デバイスまたはモジュール

ツインのタグ プロパティを使用して、この構成の対象となるデバイスまたはモジュールを指定します。 ツインから報告されたプロパティをターゲットに指定することもできます。

自動デバイス構成はデバイスのツイン タグのみをターゲットにすることができ、自動モジュール構成はモジュールのツイン タグのみをターゲットにできます。

複数の構成で同じデバイスまたはモジュールがターゲットになる場合があるため、各構成に優先順位番号を付ける必要があります。 競合した場合は、優先度の最も高い構成が適用されます。

  1. 構成の優先度を、正の整数で入力します。 最大の数値が、最高の優先度と見なされます。 2 つの構成に同じ優先度が付けられている場合は、直近に作成された構成が優先されます。

  2. ターゲット条件を入力して、どのデバイスまたはモジュールがこの構成のターゲットとなるかを指定します。 条件は、ツイン タグか、ツインから報告されるプロパティに基づいて指定し、式の形式に一致させる必要があります。

    自動デバイス構成では、ターゲットにするタグまたは報告されたプロパティだけを指定できます。 たとえば、tags.environment='test' または properties.reported.chillerProperties.model='4000x' です。 * を指定するとすべてのデバイスがターゲットになります。

    自動モジュール構成の場合は、クエリを使用して、IoT ハブに登録されているモジュールのタグまたは報告されるプロパティを指定します。 たとえば、from devices.modules where tags.environment='test' または from devices.modules where properties.reported.chillerProperties.model='4000x' です。 ワイルドカードを使用してすべてのモジュールをターゲットにすることはできません。

メトリック

メトリックは、構成のコンテンツを適用した後にデバイスまたはモジュールから報告される、各種の状態の集計カウントを示すものです。 たとえば、保留設定の変更に対するメトリック、エラーのメトリック、正常設定の変更に対するメトリックなどを作成できます。

各構成には、最大 5 つのカスタム メトリックを含めることができます。

  1. [メトリック名] に名前を入力します

  2. [メトリックの条件] にクエリを入力します。 このクエリは、デバイス ツインから報告されるプロパティに基づいて指定します。 メトリックは、クエリによって返された行の数を表します。

    次に例を示します。

    SELECT deviceId FROM devices 
      WHERE properties.reported.chillerWaterSettings.status='pending'
    

    構成が適用された句を含めることもできます。次に例を示します。

    /* Include the double brackets. */
    SELECT deviceId FROM devices 
      WHERE configurations.[[yourconfigname]].status='Applied'
    

    構成したモジュールをレポートするためのメトリックを作成する場合は、devices.modules から moduleId を選択します。 次に例を示します。

    SELECT deviceId, moduleId FROM devices.modules
      WHERE properties.reported.lastDesiredStatus.code = 200
    

構成の確認

構成情報を確認し、 [送信] を選択します。

構成の監視

構成の詳細を確認し、それを実行しているデバイスを監視するには、次の手順を実行します。

  1. Azure portal で IoT Hub に移動します。

  2. [デバイス管理] で [構成] を選択します。

  3. 構成の一覧を確認します。 構成ごとに、次の詳細を表示できます。

    • ID - 構成の名前。

    • ターゲット条件 - 対象となるデバイスまたはモジュールを定義するためのクエリ。

    • 優先度 - 構成に割り当てられた優先順位番号。

    • 作成日時 - 構成が作成されたときのタイムスタンプ。 2 つの構成の優先順位が同じ場合には、このタイムスタンプを使って、優先する構成が決定されます。

    • システム メトリック - IoT Hub によって計算され、開発者からはカスタマイズできないメトリック。 Targeted は、ターゲットの条件に一致するデバイス ツインの数を示します。 Applies は、構成によって変更されたデバイス ツインの数を示します。これには、より優先度の高い別の構成による変更も加えられている場合の、部分的な変更が含まれることがあります。

    • カスタム メトリック - ツインから報告されたプロパティに対するクエリとして開発者が指定したメトリック。 カスタム メトリックは、1 つの構成につき最大で 5 つ定義できます。

  4. 監視する構成を選択します。

  5. 構成の詳細を確認します。 構成が適用されたデバイスに関する特定の詳細情報を表示するには、タブを使用します。

    • ターゲット デバイスまたはターゲット モジュール - ターゲットの条件に一致するデバイスまたはモジュールです。

    • メトリック - システム メトリックとカスタム メトリックの一覧です。 ドロップダウン リストからメトリックを選択して [デバイスの表示] または [モジュールの表示] を選択すると、各メトリックに対してカウントされたデバイスまたはモジュールの一覧が表示されます。

    • ラベル - 構成を説明するために使われる、キーと値のペアです。 ラベルは、機能には影響を与えません。

    • [デバイス ツインの設定] または [モジュール ツインの設定] - 存在する場合、構成によって設定されるデバイス ツイン設定です。

構成の変更

構成を変更すると、変更はすべての対象デバイスまたはモジュールにただちにレプリケートされます。

対象の条件を更新すると、次の更新が実行されます。

  • 古いターゲット条件を満たしていなかったツインが、新しいターゲット条件を満たしていて、かつその構成の優先度がそのツインに対して最も高い場合、その構成が適用されます。

  • その構成を現在実行しているツインがターゲット条件を満たさなくなった場合は、構成から設定が削除され、次に高い優先度の構成でツインが変更されます。

  • その構成を現在実行しているツインがターゲット条件を満たさなくなり、その他の構成のターゲット条件も満たさない場合には、構成の設定が削除され、ツインに対するその他の変更は加えられません。

構成を変更するには、次の手順を実行します。

  1. Azure portal で IoT Hub に移動します。

  2. [デバイス管理] で [構成とデプロイ] を選択します。

  3. 変更する構成を選択します。

  4. 次のフィールドに変更を加えられます。

    • Priority
    • メトリック
    • ターゲット条件
    • ラベル
  5. [保存] を選択します。

  6. 構成の監視」の手順に従って、変更が適用されたことを確認します。

構成を削除する

構成を削除すると、対象となっていたすべてのデバイス ツインが、次に高い優先度の構成に移行されます。 デバイス ツインが他のいずれの構成のターゲット条件も満たさない場合は、他の設定は適用されません。

  1. Azure portal で IoT Hub に移動します。

  2. [デバイス管理] で [構成とデプロイ] を選択します。

  3. チェックボックスを使用して、削除する構成を選択します。

  4. [削除] を選択します。

  5. 確認を求めるプロンプトが表示されます。

次のステップ

この記事では、多数の IoT デバイスを構成および監視する方法について説明しました。

IoT Hubデバイス ID を一括で管理する方法については、「IoT Hub デバイス ID の一括でのインポートおよびエクスポート」を参照してください