適用対象: IoT Edge 1.5
重要
IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は、2024 年 11 月 12 日をもってサポートが終了しています。 以前のリリースの場合は、「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 | モジュールを再起動する必要がある場合。 使用可能な値: Never: 実行されていない場合はモジュールを再起動しません。Always: 実行中でない場合は常にモジュールを再起動します。On-Unhealthy: 異常な場合はモジュールを再起動します。 異常とは、正常性チェックに基づいて Docker が報告するものです。たとえば、「異常 - コンテナが正常に動作していません」、On-Failed: 失敗した場合は再起動します などです。 | はい |
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 です。 | いいえ |
スキーマバージョン | 1.0 または 1.1 を指定します。 IoT Edge バージョン 1.0.10 で導入されたバージョン 1.1 をお勧めします。 | はい |
ステータス | モジュールの目的の状態: 実行中 または 停止済み。 | 必須 |
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 | running である必要があります。 | はい |
システムモジュール.edgeHub.再起動ポリシー | always である必要があります。 | はい |
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 によって設定されます。 デプロイ マニフェストの一部ではありません。 |
モジュール。{moduleId}.version | このモジュールのバージョンを表すユーザー定義の文字列。 | はい |
モジュール。{moduleId}.type | docker である必要があります。 | はい |
モジュール。{moduleId}.status | {実行中 | 停止} | はい |
モジュール。{moduleId}.restartPolicy | {never | always} | はい |
モジュール。{moduleId}.startupOrder | モジュールの起動場所を示す整数値。 0 が最初で、最大の整数 (4294967295) は最後です。 値が指定されていない場合、既定値は最大の整数になります。 | いいえ |
モジュール。{moduleId}.imagePullPolicy | {作成中 | never} | いいえ |
モジュール。{moduleId}.env | モジュールに渡す環境変数の一覧。
"<name>": {"value": "<value>"} の形式を取ります。 |
いいえ |
モジュール。{moduleId}.settings.image | モジュール イメージへの URI。 | はい |
モジュール。{moduleId}.settings.createOptions | モジュール コンテナーの作成のためのオプションを含む文字列化された JSON。 Docker の作成オプション | いいえ |
モジュール。{moduleId}.configuration.id | このモジュールをデプロイしたデプロイの ID。 | このプロパティは、マニフェストがデプロイを使用して適用されるときに IoT Hub によって設定されます。 デプロイ マニフェストの一部ではありません。 |
バージョン | バージョン、コミット、ビルドを含む現在のイテレーション。 | いいえ |
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 | 状態を説明するテキスト。 |
最終希望バージョン | この整数は、IoT Edge エージェントによって処理された必要なプロパティの最後のバージョンを参照します。 |
runtime.platform.OS | デバイスで実行されている OS を報告します。 |
ランタイム・プラットフォーム・アーキテクチャ | デバイスの CPU アーキテクチャを報告します。 |
スキーマバージョン | 報告されたプロパティのスキーマのバージョン。 |
システムモジュール.edgeAgent.ランタイムステータス | IoT Edge エージェントの報告された状態: {running | unhealthy}。 |
システムモジュール.エッジエージェント.ステータス説明 | IoT Edge エージェントの報告された状態のテキストでの説明。 |
systemModules.edgeAgent.exitCode | コンテナーが終了した場合に、IoT Edge エージェント コンテナーによって報告された終了コード。 |
systemModules.edgeAgent.lastStartTimeUtc | IoT Edge エージェントが最後に起動された時間 |
システムモジュール.エッジエージェント.最終終了時刻UTC | IoT Edge エージェントが最後に終了した時間。 |
systemModules.edgeHub.runtimeStatus | IoT Edge ハブの状態: { running | stopped | failed | backoff | unhealthy }。 |
システムモジュール・エッジハブ・ステータス説明 | 異常な場合の IoT Edge ハブの状態のテキストでの説明。 |
systemModules.edgeHub.exitCode | コンテナーが終了した場合に、IoT Edge ハブ コンテナーによって報告された終了コード。 |
systemModules.edgeHub.lastStartTimeUtc | IoT Edge ハブが最後に起動された時刻。 |
システムモジュール.エッジハブ.最終終了時刻UTC | IoT Edge ハブが最後に終了された時間。 |
systemModules.edgeHub.最終再起動時間Utc | IoT Edge ハブが最後に再起動された時刻。 |
システムモジュール.edgeHub.再起動回数 | このモジュールが再起動ポリシーの一部として再起動された回数。 |
モジュール。{moduleId}.runtimeStatus | モジュールの状態: { running | stopped | failed | backoff | unhealthy }。 |
モジュール。{moduleId}.statusDescription | 異常な場合のモジュールの状態のテキストでの説明。 |
モジュール。{moduleId}.exitCode | コンテナーが終了した場合に、モジュール コンテナーによって報告された終了コード。 |
モジュール。{moduleId}.lastStartTimeUtc | モジュールが最後に起動された時刻。 |
モジュール。{moduleId}.lastExitTimeUtc | モジュールが最後に終了された時間。 |
モジュール.{moduleId}.最終再起動時刻UTC | モジュールが最後に再起動された時刻。 |
モジュール。{moduleId}.restartCount | このモジュールが再起動ポリシーの一部として再起動された回数。 |
バージョン | イメージのバージョン。 例: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }。 |
edgeHub の必要なプロパティ
IoT Edge ハブのモジュール ツインは $edgeHub
と呼ばれ、デバイス上で実行されている IoT Edge ハブと IoT Hub の間の通信を調整します。 必要なプロパティは、単一デバイスまたは大規模デプロイの一部として特定のデバイスにデプロイ マニフェストを適用するときに設定されます。
プロパティ | 内容 | デプロイ マニフェストに必要 |
---|---|---|
スキーマバージョン | "1.0" または "1.1" のいずれかです。 バージョン 1.1 は IoT Edge バージョン 1.0.10 で導入されました。こちらが推奨されます。 | はい |
ルート。{routeName} | IoT Edge ハブのルートを表す文字列。 詳細については、「ルートの宣言」を参照してください。 |
routes 要素は存在できますが、空です。 |
storeAndForwardConfiguration.timeToLiveSecs | ルーティング エンドポイント (IoT Hub またはローカル モジュール) から切断された場合に、IoT Edge ハブがメッセージを保持するデバイスの時間 (秒数)。 この時間は、電源をオフにした後または再起動後も保持されます。 詳細については、オフライン機能に関するページを参照してください。 | はい |
edgeHub の報告されるプロパティ
プロパティ | 内容 |
---|---|
最終希望バージョン | この整数は、IoT Edge ハブによって処理された必要なプロパティの最後のバージョンを参照します。 |
lastDesiredStatus.code | IoT Edge ハブによって表示された最後の必要なプロパティを参照する状態コード。 許可される値: 200 成功、400 無効な構成、500 失敗 |
lastDesiredStatus.description | 状態を説明するテキスト。 |
クライアント | 状態と最後の接続時刻で edgeHub に接続されているすべてのクライアント。 例: "clients": { "device2/SimulatedTemperatureSensor": { "status": "Connected", "lastConnectedTimeUtc": "2022-11-17T21:49:16.4781564Z" } }。 |
クライアント。{device or moduleId}.status | このデバイスまたはモジュールの接続状態。 可能性のある値 {connected | disconnected}。 切断された状態になることができるのはモジュール ID だけです。 IoT Edge ハブに接続されるダウンストリーム デバイスは、接続されている場合にのみ表示されます。 |
クライアント。{device or moduleId}.lastConnectTime | デバイスまたはモジュールが接続された最後の時間。 |
クライアント。{device or moduleId}.lastDisconnectTime | デバイスまたはモジュールが切断された最後の時間。 |
スキーマバージョン | 報告されたプロパティのスキーマのバージョン。 |
バージョン | イメージのバージョン。 例: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }。 |
次のステップ
これらのプロパティを使って配置マニフェストを作成する方法については、「IoT Edge モジュールをどのように使用、構成、および再利用できるかを理解する」をご覧ください。