対象:
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 デバイスにモジュールを展開する方法の詳細については、「
モジュール ツインには以下が含まれます。
必要なプロパティ。 ソリューション バックエンドによって必要なプロパティが設定され、モジュールによって読み取られます。 モジュールは、必要なプロパティの変更の通知も受け取ります。 必要なプロパティと報告されるプロパティを使用して、モジュールの構成または条件を同期します。
報告されるプロパティ。 モジュールは報告されたプロパティを設定し、ソリューション バックエンドはそれらを読み取ってクエリを実行します。 報告されたプロパティと必要なプロパティを使用して、モジュールの構成または条件を同期します。
edgeAgent の必要なプロパティ
IoT Edge エージェントのモジュール ツインは、$edgeAgent と呼ばれます。 デバイスで実行されているIoT Edge エージェントとIoT Hub間の通信を調整します。 単一デバイスまたは大規模配置の一部として特定のデバイスに配置マニフェストを適用するときに、必要なプロパティを設定します。
| プロパティ | 説明 | 必須 |
|---|---|---|
imagePullPolicy |
イメージをプルするタイミングを指定します: OnCreate または Never。 イメージが既にデバイス上にある場合は 、Never を使用します。 | はい |
restartPolicy |
モジュールを再起動するタイミング。 使用可能な値は次のとおりです。決して: 実行されていない場合はモジュールを再起動しません、常に: 実行中でない場合は常にモジュールを再起動します、異常時: モジュールが異常な場合は再起動します、失敗時: 失敗した場合は再起動します。 メモ:現在、Never と Always のみが実装されています。 On-Unhealthy と On-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 モジュールを使用、構成、および再利用する方法を理解するを参照してください。