次の方法で共有


IoT Edge エージェントと IoT Edge ハブ モジュール ツインのプロパティ

対象:IoT Edge 1.5 チェックマーク IoT Edge 1.5

重要

IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は 2024 年 11 月 12 日に終了しました。 以前のリリースを使用している場合は、「Update IoT Edgeを参照してください。

IoT Edge エージェントとIoT Edge ハブは、IoT Edge ランタイムを構成する 2 つのモジュールです。 各ランタイム モジュールの役割の詳細については、「Azure IoT Edge ランタイムとそのアーキテクチャの理解を参照してください。

この記事では、ランタイム モジュール ツインの必要なプロパティと報告されるプロパティを示します。 IoT Edge デバイスにモジュールを展開する方法の詳細については、「モジュールをデプロイし、IoT Edgeを参照してください。

モジュール ツインには以下が含まれます。

  • 必要なプロパティ。 ソリューション バックエンドによって必要なプロパティが設定され、モジュールによって読み取られます。 モジュールは、必要なプロパティの変更の通知も受け取ります。 必要なプロパティと報告されるプロパティを使用して、モジュールの構成または条件を同期します。

  • 報告されるプロパティ。 モジュールは報告されたプロパティを設定し、ソリューション バックエンドはそれらを読み取ってクエリを実行します。 報告されたプロパティと必要なプロパティを使用して、モジュールの構成または条件を同期します。

edgeAgent の必要なプロパティ

IoT Edge エージェントのモジュール ツインは、$edgeAgent と呼ばれます。 デバイスで実行されているIoT Edge エージェントとIoT Hub間の通信を調整します。 単一デバイスまたは大規模配置の一部として特定のデバイスに配置マニフェストを適用するときに、必要なプロパティを設定します。

プロパティ 説明 必須
imagePullPolicy イメージをプルするタイミングを指定します: OnCreate または Never。 イメージが既にデバイス上にある場合は 、Never を使用します。 はい
restartPolicy モジュールを再起動するタイミング。 使用可能な値は次のとおりです。決して: 実行されていない場合はモジュールを再起動しません、常に: 実行中でない場合は常にモジュールを再起動します、異常時: モジュールが異常な場合は再起動します、失敗時: 失敗した場合は再起動します。 メモ:現在、NeverAlways のみが実装されています。 On-UnhealthyOn-Failed はスキーマで受け入れられますが、再起動は開始しません。 詳細については、IoT Edgeの制限と制限を参照してください。 はい
runtime.type Docker である必要があります。 はい
runtime.settings.minDockerVersion この配置マニフェストで必要な最小 Docker バージョンを指定します。 はい
runtime.settings.loggingOptions IoT Edge エージェント コンテナーのログ オプションを使用して文字列化された JSON を指定します。 Docker ログ オプションの詳細を確認します。 いいえ
runtime.settings.registryCredentials.{registryId}.username コンテナー レジストリのユーザー名を指定します。 Azure Container Registryの場合、ユーザー名は通常レジストリ名です。 プライベート モジュール イメージにはレジストリ資格情報が必要です。 いいえ
runtime.settings.registryCredentials.{registryId}.password コンテナー レジストリのパスワード。 いいえ
runtime.settings.registryCredentials.{registryId}.address コンテナー レジストリのアドレス。 Azure Container Registryの場合、通常、アドレスは {registry name}.azurecr.io です。 いいえ
schemaVersion 1.0 または 1.1 を指定します。 IoT Edge バージョン 1.0.10 で導入されたバージョン 1.1 をお勧めします。 はい
status モジュールの目的の状態: 実行中 または 停止済み 必須
systemModules.edgeAgent.type Docker である必要があります。 はい
systemModules.edgeAgent.startupOrder 起動順序でのモジュールの位置の整数を指定します。 0 が最初で、 最大整数 (4294967295) が最後です。 値を指定しない場合、既定値は 最大整数です。 いいえ
systemModules.edgeAgent.settings.image IoT Edge エージェント イメージの URI を指定します。 IoT Edge エージェントはそれ自体を更新できません。 はい
systemModules.edgeAgent.settings.createOptions IoT Edge エージェント コンテナーを作成するためのオプションを含む文字列化された JSON を指定します。 Docker の作成オプションの詳細を確認します。 いいえ
systemModules.edgeAgent.configuration.id このモジュールをデプロイしたデプロイの ID。 IoT Hub配置を使用してマニフェストを適用するときに、このプロパティを設定します。 デプロイ マニフェストの一部ではありません。
systemModules.edgeHub.type Docker である必要があります。 はい
systemModules.edgeHub.status 実行中である必要があります。 はい
systemModules.edgeHub.restartPolicy 常にである必要があります はい
systemModules.edgeHub.startupOrder モジュールの起動順序を示す整数値。 0 が最初で、最大の整数 (4294967295) は最後です。 値を指定しない場合、既定値は 最大整数です。 いいえ
systemModules.edgeHub.settings.image IoT Edge ハブのイメージの URI。 はい
systemModules.edgeHub.settings.createOptions IoT Edge ハブ コンテナーを作成するためのオプションを含む文字列化された JSON。 Docker の作成オプション いいえ
systemModules.edgeHub.configuration.id このモジュールをデプロイしたデプロイの ID。 IoT Hub配置を使用してマニフェストを適用するときに、このプロパティを設定します。 デプロイ マニフェストの一部ではありません。
modules.{moduleId}.version このモジュールのバージョンを表すユーザー定義の文字列。 はい
modules.{moduleId}.type Docker である必要があります。 はい
modules.{moduleId}.status 実行中 | 停止 はい
modules.{moduleId}.restartPolicy never | いつも はい
modules.{moduleId}.startupOrder モジュールの起動順序における場所を示す整数値。 0 が最初で、最大の整数 (4294967295) は最後です。 値を指定しない場合、既定値は 最大整数です。 いいえ
modules.{moduleId}.imagePullPolicy on-create | ぜんぜん いいえ
modules.{moduleId}.env モジュールに渡す環境変数の一覧。 形式: "<name>": {"value": "<value>"} いいえ
modules.{moduleId}.settings.image モジュール イメージへの URI。 はい
modules.{moduleId}.settings.createOptions モジュール コンテナーの作成のためのオプションを含む文字列化された JSON。 Docker の作成オプション いいえ
modules.{moduleId}.configuration.id このモジュールをデプロイしたデプロイの ID。 IoT Hub配置を使用してマニフェストを適用するときに、このプロパティを設定します。 デプロイ マニフェストの一部ではありません。
version バージョン、コミット、ビルドを含む現在のイテレーション。 いいえ

edgeAgent の報告されるプロパティ

エージェントIoT Edge報告されるプロパティには、主に次の 3 つの情報が含まれます。

  • 最後に表示された必要なプロパティのアプリケーションの状態。
  • IoT Edge エージェントによって報告されたデバイスで現在実行されているモジュールの状態
  • デバイスで現在実行されている目的のプロパティのコピー。

現在の必要なプロパティのコピーは、デバイスが最新の配置を適用したか、以前の配置マニフェストを実行しているかどうかを判断するのに役立ちます。

IoT Hub クエリ言語を使用して、エージェントIoT Edge報告されたプロパティに対してクエリを実行して、大規模なデプロイの状態を調査できます。 IoT Edge エージェントのプロパティを状態に使用する方法の詳細については、「単一デバイスまたは大規模なIoT Edge展開」を参照してください。

次の表には、目的のプロパティからコピーされた情報は含まれません。

プロパティ 説明
lastDesiredStatus.code IoT Edge エージェントによって表示される最後の必要なプロパティの状態コード。 許可される値: 200 成功、400 無効な構成、412 無効なスキーマ バージョン、417 必要なプロパティが空、500 失敗。
lastDesiredStatus.description 状態を説明するテキスト。
lastDesiredVersion この整数は、IoT Edge エージェントによって処理された必要なプロパティの最後のバージョンを参照します。
runtime.platform.OS デバイスで実行されている OS を報告します。
runtime.platform.architecture デバイスの CPU アーキテクチャを報告します。
schemaVersion 報告されたプロパティのスキーマのバージョン。
systemModules.edgeAgent.runtimeStatus IoT Edge エージェントの報告されている状態: { 稼働中 | 不健全 }。
systemModules.edgeAgent.statusDescription IoT Edge エージェントの報告された状態のテキストの説明。
systemModules.edgeAgent.exitCode コンテナーが終了した場合に、IoT Edge エージェント コンテナーによって報告される終了コード。
systemModules.edgeAgent.lastStartTimeUtc IoT Edge エージェントが最後に開始された時刻。
systemModules.edgeAgent.lastExitTimeUtc IoT Edgeエージェントが最後に終了した時刻。
systemModules.edgeHub.runtimeStatus IoT Edge ハブの状態: { ランニングストップ失敗バックオフ不健康
systemModules.edgeHub.statusDescription 異常な場合は、IoT Edge ハブの状態のテキストの説明。
systemModules.edgeHub.exitCode コンテナーが終了した場合、IoT Edge ハブ コンテナーによって報告される終了コード。
systemModules.edgeHub.lastStartTimeUtc IoT Edge ハブが最後に開始された時刻。
systemModules.edgeHub.lastExitTimeUtc IoT Edge ハブが最後に終了された時刻。
systemModules.edgeHub.lastRestartTimeUtc IoT Edge ハブが最後に再起動された時刻。
systemModules.edgeHub.restartCount このモジュールが再起動ポリシーの一部として再起動された回数。
modules.{moduleId}.runtimeStatus モジュールの状態: { running | stopped | failed | backoff | unhealthy }。
modules.{moduleId}.statusDescription 異常な場合のモジュールの状態のテキストでの説明。
modules.{moduleId}.exitCode コンテナーが終了した場合にモジュール コンテナーによって報告される終了コード。
modules.{moduleId}.lastStartTimeUtc モジュールが最後に起動された時刻。
modules.{moduleId}.lastExitTimeUtc モジュールが最後に終了した時刻。
modules.{moduleId}.lastRestartTimeUtc モジュールが最後に再起動された時刻。
modules.{moduleId}.restartCount このモジュールが再起動ポリシーの一部として再起動された回数。
version イメージのバージョン。 たとえば、 "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }と指定します。

edgeHub の必要なプロパティ

IoT Edge ハブのモジュール ツインは、$edgeHub と呼ばれます。 デバイスで実行されているIoT Edge ハブとIoT Hub間の通信を調整します。 単一デバイスまたは大規模配置の一部として特定のデバイスに配置マニフェストを適用するときに、必要なプロパティを設定します。

プロパティ 説明 デプロイ マニフェストに必要
schemaVersion 1.0 または 1.1 のいずれかです。 バージョン 1.1 は IoT Edge バージョン 1.0.10 で導入されており、推奨されています。 はい
routes.{routeName} IoT Edge ハブ ルートを表す文字列。 詳細については、「ルートの宣言」を参照してください。 routes 要素は存在できますが、空です。
storeAndForwardConfiguration.timeToLiveSecs IoT Hubかローカル モジュールかに関係なく、IoT Edge ハブがルーティング エンドポイントから切断された場合にメッセージを保持するデバイス時間 (秒単位)。 この時間は、電源をオフにした後または再起動後も保持されます。 詳細については、オフライン機能に関するページを参照してください。 はい

edgeHub の報告されるプロパティ

プロパティ 説明
lastDesiredVersion この整数は、IoT Edge ハブによって処理される必要なプロパティの最後のバージョンを参照します。
lastDesiredStatus.code IoT Edge ハブによって表示される最後の必要なプロパティを参照する状態コード。 使用できる値: 200 成功、 400 無効な構成、 500 失敗。
lastDesiredStatus.description 状態を説明するテキスト。
clients 状態と最後の接続時刻で edgeHub に接続されているすべてのクライアント。 例: "clients": { "device2/SimulatedTemperatureSensor": { "status": "Connected", "lastConnectedTimeUtc": "2022-11-17T21:49:16.4781564Z" } }
clients.{device or moduleId}.status このデバイスまたはモジュールの接続状態。 使用可能な値: 接続 済みまたは 切断済み。 切断された状態になることができるのはモジュール ID だけです。 IoT Edge ハブに接続しているダウンストリーム デバイスは、接続されている場合にのみ表示されます。
clients.{device or moduleId}.lastConnectTime デバイスまたはモジュールが接続された最後の時間。
clients.{device or moduleId}.lastDisconnectTime デバイスまたはモジュールが切断された最後の時間。
schemaVersion 報告されたプロパティのスキーマのバージョン。
version イメージのバージョン。 たとえば、 "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }と指定します。

次のステップ

これらのプロパティを使用して配置マニフェストを構築する方法については、「IoT Edge モジュールを使用、構成、および再利用する方法を理解するを参照してください。