Azure portal を使用した IoT デバイスおよびモジュールの自動管理Automatic IoT device and module management using the Azure portal

Azure IoT Hub の自動デバイス管理では、多数のデバイスを管理するという反復的で複雑なタスクの多くを自動化できます。Automatic device management in Azure IoT Hub automates many of the repetitive and complex tasks of managing large device fleets. 自動デバイス管理では、対象となる一連のデバイスをプロパティに基づいて設定し、必要な構成を定義しておくと、デバイスがスコープに適合したときに、IoT Hub によってデバイスが更新されます。With automatic device management, you can target a set of devices based on their properties, define a desired configuration, and then let IoT Hub update the devices when they come into scope. この更新は、 自動デバイス構成 または 自動モジュール構成 を使用して行われます。これにより、完了やコンプライアンスの概況を把握し、マージや競合に対処し、構成を段階的なアプローチで展開することができます。This update is done using an automatic device configuration or automatic module configuration , which lets you summarize completion and compliance, handle merging and conflicts, and roll out configurations in a phased approach.

注意

この記事で説明されている機能は、Standard レベルの IoT Hub でのみ使用できます。The features described in this article are available only in the standard tier of IoT Hub. Basic および Standard または Free レベルの IoT Hub の詳細については、適切な IoT Hub レベルの選択に関するページを参照してください。For more information about the basic and standard/free IoT Hub tiers, see Choose the right IoT Hub tier.

自動デバイス管理では、一連のデバイス ツインまたはモジュール ツインが必要なプロパティで更新され、ツインで報告されたプロパティに基づくサマリーが報告されます。Automatic device management works by updating a set of device twins or module twins with desired properties and reporting a summary that's based on twin reported properties. この機能では、 構成 という新しいクラスと JSON ドキュメントが導入されています。構成には、次の 3 つの要素が含まれています。It introduces a new class and JSON document called a Configuration that has three parts:

  • ターゲット条件 は、更新されるデバイス ツインまたはモジュール ツインのスコープ (範囲) を定義します。The target condition defines the scope of device twins or module twins to be updated. ターゲット条件は、ツイン タグおよび報告されたプロパティに関するクエリとして指定されます。The target condition is specified as a query on twin tags and/or reported properties.

  • ターゲット コンテンツ は、ターゲットのデバイス ツインまたはモジュール ツイン内、どのプロパティを追加または更新するのかを定義します。The target content defines the desired properties to be added or updated in the targeted device twins or module twins. このコンテンツには、変更するプロパティのセクションへのパスが含まれます。The content includes a path to the section of desired properties to be changed.

  • メトリック : 各種の構成状態 ( 成功進行中エラー など) の集計カウントを定義します。The metrics define the summary counts of various configuration states such as Success , In Progress , and Error. カスタム メトリックは、ツインから報告されたプロパティに関するクエリとして指定されます。Custom metrics are specified as queries on twin reported properties. システム メトリックは、ツインの更新状態を測定する既定のメトリックです (対象となるツインの数や、正常に更新されたツインの数など)。System metrics are the default metrics that measure twin update status, such as the number of twins that are targeted and the number of twins that have been successfully updated.

自動構成は、構成が作成された直後に初めて実行され、その後は 5 分間隔で実行されます。Automatic configurations run for the first time shortly after the configuration is created and then at five minute intervals. 自動構成が実行されるたびに、メトリックのクエリが実行されます。Metrics queries run each time the automatic configuration runs.

ツインを実装するImplement twins

自動デバイス構成では、クラウドとデバイスとの間で状態を同期するために、デバイス ツインを使う必要があります。Automatic device configurations require the use of device twins to synchronize state between the cloud and devices. 詳細については、「IoT Hub のデバイス ツインの理解と使用」を参照してください。For more information, see Understand and use device twins in IoT Hub.

自動モジュール構成では、クラウドとモジュール間で状態を同期するために、モジュール ツインを使う必要があります。Automatic module configurations require the use of module twins to synchronize state between the cloud and modules. 詳細については、「IoT Hub のモジュール ツインの理解と使用」を参照してください。For more information, see Understand and use module twins in IoT Hub.

タグを使用してツインをターゲットにするUse tags to target twins

構成を作成する前に、影響の範囲内に含めるデバイスまたはモジュールを指定する必要があります。Before you create a configuration, you must specify which devices or modules you want to affect. Azure IoT Hub では、デバイス ツインのタグを利用してデバイスが識別され、モジュール ツインのタグを利用してモジュールが識別されます。Azure IoT Hub identifies devices and using tags in the device twin, and identifies modules using tags in the module twin. 各デバイスまたはモジュールには複数のタグを設定することができ、ソリューションに適した任意の方法で定義できます。Each device or modules can have multiple tags, and you can define them any way that makes sense for your solution. たとえば、複数の場所のデバイスを管理する場合には、デバイス ツインに次のタグを追加します。For example, if you manage devices in different locations, add the following tags to a device twin:

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

構成を作成するCreate a configuration

  1. Azure portal で IoT Hub に移動します。In the Azure portal, go to your IoT hub.

  2. [IoT device configuration](IoT デバイス構成) を選択します。Select IoT device configuration.

  3. [デバイス構成の追加] または [モジュール構成の追加] を選択します。Select Add device configuration or Add module configuration.

    デバイス構成またはモジュール構成を追加する

構成を作成するには、5 つの手順があります。There are five steps to create a configuration. 次のセクションで、手順ごとに説明します。The following sections walk through each one.

名前とラベルName and Label

  1. 構成に一意の名前を付けます。名前は最大 128 文字の英小文字で指定します。Give your configuration a unique name that is up to 128 lowercase letters. スペースや、無効な文字は使用しないでください。& ^ [ ] { } \ | " < > /Avoid spaces and the following invalid characters: & ^ [ ] { } \ | " < > /.

  2. 構成を追跡するためのラベルを追加します。Add labels to help track your configurations. ラベルは、構成を説明する 名前 の対で指定します。Labels are Name , Value pairs that describe your configuration. たとえば、HostPlatform, Linux または Version, 3.0.1 です。For example, HostPlatform, Linux or Version, 3.0.1.

  3. [次へ] を選択して、次のステップに進みます。Select Next to move to the next step.

設定を指定するSpecify Settings

このセクションでは、ターゲットのデバイス ツインまたはモジュール ツイン内で設定される、ターゲット コンテンツを定義します。This section defines the content to be set in targeted device or module twins. 設定のセットごとに、2 つの入力項目があります。There are two inputs for each set of settings. 1 つ目は、ツイン パスです。これは、設定されるプロパティの、ツイン内での JSON セクションへのパスです。The first is the twin path, which is the path to the JSON section within the twin desired properties that will be set. 2 つ目は、そのセクションに挿入される JSON コンテンツです。The second is the JSON content to be inserted in that section.

たとえば、ツイン パスを properties.desired.chiller-water に設定し、次の JSON コンテンツを指定することができます。For example, you could set the twin path to properties.desired.chiller-water and then provide the following JSON content:

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

ツイン パスとコンテンツを設定する

ツイン パス全体を指定し、角かっこなしの値を指定することで、個別の設定を行うこともできます。You can also set individual settings by specifying the entire twin path and providing the value with no brackets. たとえば、ツイン パス properties.desired.chiller-water.temperature で、コンテンツを 66 に設定します。For example, with the twin path properties.desired.chiller-water.temperature, set the content to 66. 次に、pressure プロパティの新しいツイン設定を作成します。Then create a new twin setting for the pressure property.

2 つ以上の構成で同じツイン パスがターゲットとなった場合は、優先度が最も高い構成のコンテンツが適用されます (優先度は手順 4 で定義します)。If two or more configurations target the same twin path, the content from the highest priority configuration will apply (priority is defined in step 4).

既存のプロパティを削除する場合は、プロパティの値を null に指定します。If you wish to remove an existing property, specify the property value to null.

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

メトリックを指定する (省略可能)Specify Metrics (optional)

メトリックは、構成のコンテンツを適用した後にデバイスまたはモジュールから報告される、各種の状態の集計カウントを示すものです。Metrics provide summary counts of the various states that a device or module may report back after applying configuration content. たとえば、保留設定の変更に対するメトリック、エラーのメトリック、正常設定の変更に対するメトリックなどを作成できます。For example, you may create a metric for pending settings changes, a metric for errors, and a metric for successful settings changes.

各構成には、最大 5 つのカスタム メトリックを含めることができます。Each configuration can have up to five custom metrics.

  1. [メトリック名] に名前を入力しますEnter a name for Metric Name.

  2. [メトリックの条件] にクエリを入力します。Enter a query for Metric Criteria. このクエリは、デバイス ツインから報告されるプロパティに基づいて指定します。The query is based on device twin reported properties. メトリックは、クエリによって返された行の数を表します。The metric represents the number of rows returned by the query.

次に例を示します。For example:

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

構成が適用された句を含めることもできます。次に例を示します。You can include a clause that the configuration was applied, for example:

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

構成したモジュールをレポートするためのメトリックを作成する場合は、devices.modules から moduleId を選択します。If you're building a metric to report on configured modules, select moduleId from devices.modules. 次に例を示します。For example:

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

対象デバイスTarget Devices

ツインのタグ プロパティを使用して、この構成の対象となるデバイスまたはモジュールを指定します。Use the tags property from your twins to target the specific devices or modules that should receive this configuration. ツインから報告されたプロパティをターゲットに指定することもできます。You can also target twin reported properties.

自動デバイス構成はデバイスのツイン タグのみをターゲットにすることができ、自動モジュール構成はモジュールのツイン タグのみをターゲットにできます。Automatic device configurations can only target device twin tags, and automatic module configurations can only target module twin tags.

複数の構成で同じデバイスまたはモジュールがターゲットになる場合があるため、各構成に優先順位番号を付ける必要があります。Since multiple configurations may target the same device or module, each configuration needs a priority number. 競合した場合は、優先度の最も高い構成が適用されます。If there's ever a conflict, the configuration with the highest priority wins.

  1. 構成の 優先度 を、正の整数で入力します。Enter a positive integer for the configuration Priority. 最大の数値が、最高の優先度と見なされます。The highest numerical value is considered the highest priority. 2 つの構成に同じ優先度が付けられている場合は、直近に作成された構成が優先されます。If two configurations have the same priority number, the one that was created most recently wins.

  2. ターゲット条件 を入力して、どのデバイスまたはモジュールがこの構成のターゲットとなるかを指定します。Enter a Target condition to determine which devices or modules will be targeted with this configuration. 条件は、ツイン タグか、ツインから報告されるプロパティに基づいて指定し、式の形式に一致させる必要があります。The condition is based on twin tags or twin reported properties and should match the expression format.

    自動デバイス構成では、ターゲットにするタグまたは報告されたプロパティだけを指定できます。For automatic device configuration, you can specify just the tag or reported property to target. たとえば、tags.environment='test' または properties.reported.chillerProperties.model='4000x' です。For example, tags.environment='test' or properties.reported.chillerProperties.model='4000x'. * を指定するとすべてのデバイスがターゲットになります。You can specify * to target all devices.

    自動モジュール構成の場合は、クエリを使用して、IoT ハブに登録されているモジュールのタグまたは報告されるプロパティを指定します。For automatic module configuration, use a query to specify tags or reported properties from the modules registered to the IoT hub. たとえば、from devices.modules where tags.environment='test' または from devices.modules where properties.reported.chillerProperties.model='4000x' です。For example, from devices.modules where tags.environment='test' or from devices.modules where properties.reported.chillerProperties.model='4000x'. ワイルドカードを使用してすべてのモジュールをターゲットにすることはできません。The wildcard cannot be used to target all modules.

  3. [次へ] を選択して最後の手順に進みます。Select Next to move on to the final step.

構成の確認Review Configuration

構成情報を確認し、 [送信] を選択します。Review your configuration information, then select Submit.

構成の監視Monitor a configuration

構成の詳細を確認し、それを実行しているデバイスを監視するには、次の手順を実行します。To view the details of a configuration and monitor the devices running it, use the following steps:

  1. Azure portal で IoT Hub に移動します。In the Azure portal, go to your IoT hub.

  2. [IoT device configuration](IoT デバイス構成) を選択します。Select IoT device configuration.

  3. 構成の一覧を確認します。Inspect the configuration list. 構成ごとに、次の詳細を表示できます。For each configuration, you can view the following details:

    • ID - 構成の名前。ID - the name of the configuration.

    • ターゲット条件 - 対象となるデバイスまたはモジュールを定義するためのクエリ。Target condition - the query used to define targeted devices or modules.

    • 優先度 - 構成に割り当てられた優先順位番号。Priority - the priority number assigned to the configuration.

    • 作成日時 - 構成が作成されたときのタイムスタンプ。Creation time - the timestamp from when the configuration was created. 2 つの構成の優先順位が同じ場合には、このタイムスタンプを使って、優先する構成が決定されます。This timestamp is used to break ties when two configurations have the same priority.

    • システム メトリック - IoT Hub によって計算され、開発者からはカスタマイズできないメトリック。System metrics - metrics that are calculated by IoT Hub and cannot be customized by developers. Targeted は、ターゲットの条件に一致するデバイス ツインの数を示します。Targeted specifies the number of device twins that match the target condition. Applies は、構成によって変更されたデバイス ツインの数を示します。これには、より優先度の高い別の構成による変更も加えられている場合の、部分的な変更が含まれることがあります。Applies specified the number of device twins that have been modified by the configuration, which can include partial modifications in the event that a separate, higher priority configuration also made changes.

    • カスタム メトリック - ツインから報告されたプロパティに対するクエリとして開発者が指定したメトリック。Custom metrics - metrics that have been specified by the developer as queries against twin reported properties. カスタム メトリックは、1 つの構成につき最大で 5 つ定義できます。Up to five custom metrics can be defined per configuration.

  4. 監視する構成を選択します。Select the configuration that you want to monitor.

  5. 構成の詳細を確認します。Inspect the configuration details. 構成が適用されたデバイスに関する特定の詳細情報を表示するには、タブを使用します。You can use tabs to view specific details about the devices that received the configuration.

    • ターゲット条件 - ターゲットの条件に一致するデバイスまたはモジュールです。Target Condition - the devices or modules that match the target condition.

    • メトリック - システム メトリックとカスタム メトリックの一覧です。Metrics - a list of system metrics and custom metrics. ドロップダウン リストからメトリックを選択して [デバイスの表示] または [モジュールの表示] を選択すると、各メトリックに対してカウントされたデバイスまたはモジュールの一覧が表示されます。You can view a list of devices or modules that are counted for each metric by selecting the metric in the drop-down and then selecting View Devices or View Modules.

    • [デバイス ツインの設定] または [モジュール ツインの設定] - 構成によって設定されるデバイス ツイン設定です。Device Twin Settings or Module Twin Settings - the twin settings that are set by the configuration.

    • [Configuration Labels](構成ラベル) - 構成を説明するために使われる、キーと値のペアです。Configuration Labels - key-value pairs used to describe a configuration. ラベルは、機能には影響を与えません。Labels have no impact on functionality.

構成の変更Modify a configuration

構成を変更すると、変更はすべての対象デバイスまたはモジュールにただちにレプリケートされます。When you modify a configuration, the changes immediately replicate to all targeted devices or modules.

対象の条件を更新すると、次の更新が実行されます。If you update the target condition, the following updates occur:

  • 古いターゲット条件を満たしていなかったツインが、新しいターゲット条件を満たしていて、かつその構成の優先度がそのツインに対して最も高い場合、その構成が適用されます。If a twin didn't meet the old target condition, but meets the new target condition and this configuration is the highest priority for that twin, then this configuration is applied.

  • その構成を現在実行しているツインがターゲット条件を満たさなくなった場合は、構成から設定が削除され、次に高い優先度の構成でツインが変更されます。If a twin currently running this configuration no longer meets the target condition, the settings from the configuration will be removed and the twin will be modified by the next highest priority configuration.

  • その構成を現在実行しているツインがターゲット条件を満たさなくなり、その他の構成のターゲット条件も満たさない場合には、構成の設定が削除され、ツインに対するその他の変更は加えられません。If a twin currently running this configuration no longer meets the target condition and doesn't meet the target condition of any other configurations, then the settings from the configuration will be removed and no other changes will be made on the twin.

構成を変更するには、次の手順を実行します。To modify a configuration, use the following steps:

  1. Azure portal で IoT Hub に移動します。In the Azure portal, go to your IoT hub.

  2. [IoT device configuration](IoT デバイス構成) を選択します。Select IoT device configuration.

  3. 変更する構成を選択します。Select the configuration that you want to modify.

  4. 次のフィールドに変更を加えます。Make updates to the following fields:

    • ターゲット条件Target condition
    • ラベルLabels
    • PriorityPriority
    • メトリックMetrics
  5. [保存] を選択します。Select Save.

  6. 構成の監視」の手順に従って、変更が適用されたことを確認します。Follow the steps in Monitor a configuration to watch the changes roll out.

構成を削除するDelete a configuration

構成を削除すると、対象となっていたすべてのデバイス ツインが、次に高い優先度の構成に移行されます。When you delete a configuration, any device twins take on their next highest priority configuration. デバイス ツインが他のいずれの構成のターゲット条件も満たさない場合は、他の設定は適用されません。If device twins don't meet the target condition of any other configuration, then no other settings are applied.

  1. Azure portal で IoT Hub に移動します。In the Azure portal, go to your IoT hub.

  2. [IoT device configuration](IoT デバイス構成) を選択します。Select IoT device configuration.

  3. チェックボックスを使用して、削除する構成を選択します。Use the checkbox to select the configuration that you want to delete.

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

  5. 確認を求めるプロンプトが表示されます。A prompt will ask you to confirm.

次のステップNext steps

この記事では、多数の IoT デバイスを構成および監視する方法について説明しました。In this article, you learned how to configure and monitor IoT devices at scale. Azure IoT Hub の管理についてさらに学習するには、次のリンクを使用してください。Follow these links to learn more about managing Azure IoT Hub:

IoT Hub の機能を詳しく調べるには、次のリンクを使用してください。To further explore the capabilities of IoT Hub, see:

IoT Hub Device Provisioning サービスを使用してノータッチの Just-In-Time プロビジョニングを実現する方法については、次を参照してください。To explore using the IoT Hub Device Provisioning Service to enable zero-touch, just-in-time provisioning, see: