IoT Edge エージェントと IoT Edge ハブのモジュール ツインのプロパティProperties of the IoT Edge agent and IoT Edge hub module twins

IoT Edge エージェントと IoT Edge ハブは、IoT Edge ランタイムを構成する 2 つのモジュールです。The IoT Edge agent and IoT Edge hub are two modules that make up the IoT Edge runtime. 各ランタイム モジュールの役割について詳しくは、「Azure IoT Edge ランタイムとそのアーキテクチャの概要」をご覧ください。For more information about the responsibilities of each runtime module, see Understand the Azure IoT Edge runtime and its architecture.

この記事では、ランタイム モジュール ツインの必要なプロパティと報告されるプロパティを示します。This article provides the desired properties and reported properties of the runtime module twins. IoT Edge デバイスにモジュールをデプロイする方法の詳細については、IoT Edge にモジュールをデプロイしてルートを確立する方法に関する記事をご覧ください。For more information on how to deploy modules on IoT Edge devices, see Learn how to deploy modules and establish routes in IoT Edge.

モジュール ツインには以下が含まれます。A module twin includes:

  • 必要なプロパティDesired properties. ソリューション バックエンドにより必要なプロパティを設定でき、モジュールによりそれらを読み取れます。The solution backend can set desired properties, and the module can read them. モジュールでは、必要なプロパティに対する変更を知らせる通知を受け取ることもできます。The module can also receive notifications of changes in the desired properties. モジュールの構成や状態を同期するために、必要なプロパティを報告されるプロパティと共に使用します。Desired properties are used along with reported properties to synchronize module configuration or conditions.

  • 報告されるプロパティReported properties. モジュールにより、報告されたプロパティを設定でき、ソリューション バックエンドによりそれらを読み取って、クエリを実行できます。The module can set reported properties, and the solution backend can read and query them. モジュールの構成や状態を同期するために、報告されたプロパティが必要なプロパティと共に使用されます。Reported properties are used along with desired properties to synchronize module configuration or conditions.

edgeAgent の必要なプロパティEdgeAgent desired properties

IoT Edge エージェントのモジュール ツインは $edgeAgent と呼ばれ、デバイス上で実行されている IoT Edge エージェントと IoT Hub の間の通信を調整します。The module twin for the IoT Edge agent is called $edgeAgent and coordinates the communications between the IoT Edge agent running on a device and IoT Hub. 必要なプロパティは、単一デバイスまたは大規模デプロイの一部として特定のデバイスにデプロイ マニフェストを適用するときに設定されます。The desired properties are set when applying a deployment manifest on a specific device as part of a single-device or at-scale deployment.

プロパティProperty 説明Description 必須Required
schemaVersionschemaVersion "1.0" である必要があるHas to be "1.0" はいYes
runtime.typeruntime.type "docker" である必要があるHas to be "docker" はいYes
runtime.settings.minDockerVersionruntime.settings.minDockerVersion このデプロイ マニフェストに必要な最小の Docker バージョンに設定されるSet to the minimum Docker version required by this deployment manifest はいYes
runtime.settings.loggingOptionsruntime.settings.loggingOptions IoT Edge エージェント コンテナーのログ オプションを含む文字列化された JSON。A stringified JSON containing the logging options for the IoT Edge agent container. Docker のログ オプションDocker logging options いいえNo
runtime.settings.registryCredentialsruntime.settings.registryCredentials
.{registryId}.username.{registryId}.username
コンテナー レジストリのユーザー名です。The username of the container registry. Azure Container Registry では、ユーザー名は通常、レジストリ名です。For Azure Container Registry, the username is usually the registry name.

すべてのプライベート モジュール イメージにおいて、レジストリの資格情報が必要です。Registry credentials are necessary for any private module images.
いいえNo
runtime.settings.registryCredentialsruntime.settings.registryCredentials
.{registryId}.password.{registryId}.password
コンテナー レジストリのパスワード。The password for the container registry. いいえNo
runtime.settings.registryCredentialsruntime.settings.registryCredentials
.{registryId}.address.{registryId}.address
コンテナー レジストリのアドレス。The address of the container registry. Azure Container Registry の場合、アドレスは通常 {registry name}.azurecr.io です。For Azure Container Registry, the address is usually {registry name}.azurecr.io. いいえNo
systemModules.edgeAgent.typesystemModules.edgeAgent.type "docker" である必要があるHas to be "docker" はいYes
systemModules.edgeAgent.settings.imagesystemModules.edgeAgent.settings.image IoT Edge エージェントのイメージの URI。The URI of the image of the IoT Edge agent. 現在、IoT Edge エージェントは自動更新できません。Currently, the IoT Edge agent isn't able to update itself. はいYes
systemModules.edgeAgent.settingssystemModules.edgeAgent.settings
.createOptions.createOptions
IoT Edge エージェント コンテナーの作成のためのオプションを含む文字列化された JSON。A stringified JSON containing the options for the creation of the IoT Edge agent container. Docker の作成オプションDocker create options いいえNo
systemModules.edgeAgent.configuration.idsystemModules.edgeAgent.configuration.id このモジュールをデプロイしたデプロイの ID。The ID of the deployment that deployed this module. このプロパティは、マニフェストがデプロイを使用して適用されるときに IoT Hub によって設定されます。IoT Hub sets this property when the manifest is applied using a deployment. デプロイ マニフェストの一部ではありません。Not part of a deployment manifest.
systemModules.edgeHub.typesystemModules.edgeHub.type "docker" である必要があるHas to be "docker" はいYes
systemModules.edgeHub.statussystemModules.edgeHub.status "running" である必要があるHas to be "running" はいYes
systemModules.edgeHub.restartPolicysystemModules.edgeHub.restartPolicy "always" である必要があるHas to be "always" はいYes
systemModules.edgeHub.settings.imagesystemModules.edgeHub.settings.image IoT Edge ハブのイメージの URI。The URI of the image of the IoT Edge hub. はいYes
systemModules.edgeHub.settingssystemModules.edgeHub.settings
.createOptions.createOptions
IoT Edge ハブ コンテナーの作成のためのオプションを含む文字列化された JSON。A stringified JSON containing the options for the creation of the IoT Edge hub container. Docker の作成オプションDocker create options いいえNo
systemModules.edgeHub.configuration.idsystemModules.edgeHub.configuration.id このモジュールをデプロイしたデプロイの ID。The ID of the deployment that deployed this module. このプロパティは、マニフェストがデプロイを使用して適用されるときに IoT Hub によって設定されます。IoT Hub sets this property when the manifest is applied using a deployment. デプロイ マニフェストの一部ではありません。Not part of a deployment manifest.
modules.{moduleId}.versionmodules.{moduleId}.version このモジュールのバージョンを表すユーザー定義の文字列。A user-defined string representing the version of this module. はいYes
modules.{moduleId}.typemodules.{moduleId}.type "docker" である必要があるHas to be "docker" はいYes
modules.{moduleId}.statusmodules.{moduleId}.status {"running" | "stopped"}{"running" | "stopped"} はいYes
modules.{moduleId}.restartPolicymodules.{moduleId}.restartPolicy {"never" | "on-failure" | "on-unhealthy" | "always"}{"never" | "on-failure" | "on-unhealthy" | "always"} はいYes
modules.{moduleId}.imagePullPolicymodules.{moduleId}.imagePullPolicy {"on-create" | "never"}{"on-create" | "never"} いいえNo
modules.{moduleId}.envmodules.{moduleId}.env モジュールに渡す環境変数の一覧。A list of environment variables to pass to the module. 次の形式を取ります: "<name>": {"value": "<value>"}Takes the format "<name>": {"value": "<value>"} いいえNo
modules.{moduleId}.settings.imagemodules.{moduleId}.settings.image モジュール イメージへの URI。The URI to the module image. はいYes
modules.{moduleId}.settings.createOptionsmodules.{moduleId}.settings.createOptions モジュール コンテナーの作成のためのオプションを含む文字列化された JSON。A stringified JSON containing the options for the creation of the module container. Docker の作成オプションDocker create options いいえNo
modules.{moduleId}.configuration.idmodules.{moduleId}.configuration.id このモジュールをデプロイしたデプロイの ID。The ID of the deployment that deployed this module. このプロパティは、マニフェストがデプロイを使用して適用されるときに IoT Hub によって設定されます。IoT Hub sets this property when the manifest is applied using a deployment. デプロイ マニフェストの一部ではありません。Not part of a deployment manifest.

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

IoT Edge エージェントの報告されるプロパティには、次の 3 つの主な情報が含まれます。The IoT Edge agent reported properties include three main pieces of information:

  1. 最後に表示された必要なプロパティのアプリケーションの状態The status of the application of the last-seen desired properties;
  2. IoT Edge エージェントによって報告された、現在デバイス上で実行されているモジュールの状態The status of the modules currently running on the device, as reported by the IoT Edge agent; and
  3. 現在デバイス上で実行されている必要なプロパティのコピー。A copy of the desired properties currently running on the device.

現在の必要なプロパティのコピーは、デバイスに最新のデプロイが適用されているか、または以前のデプロイ マニフェストが引き続き実行されているかを判断するのに役立ちます。The copy of the current desired properties is useful to tell whether the device has applied the latest deployment or is still running a previous deployment manifest.

注意

IoT Edge エージェントの報告されるプロパティは、デプロイの状態を大規模に調査するために IoT Hub クエリ言語でクエリできるため有効です。The reported properties of the IoT Edge agent are useful as they can be queried with the IoT Hub query language to investigate the status of deployments at scale. 状態のために IoT Edge エージェント プロパティを使用する方法の詳細については、1 台または多数のデバイスを対象とした IoT Edge デプロイに関する記事を参照してください。For more information on how to use the IoT Edge agent properties for status, see Understand IoT Edge deployments for single devices or at scale.

次の表には、必要なプロパティからコピーされる情報は含まれません。The following table does not include the information that is copied from the desired properties.

プロパティProperty 説明Description
lastDesiredVersionlastDesiredVersion この整数は、IoT Edge エージェントによって処理された必要なプロパティの最後のバージョンを参照します。This integer refers to the last version of the desired properties processed by the IoT Edge agent.
lastDesiredStatus.codelastDesiredStatus.code これは、IoT Edge エージェントによって表示された最後の必要なプロパティを参照する状態コードです。This status code refers to the last desired properties seen by the IoT Edge agent. 使用できる値は以下の通りです。200 成功、400 無効な構成、412 無効なスキーマ バージョン、417 必要なプロパティが空、500 失敗Allowed values: 200 Success, 400 Invalid configuration, 412 Invalid schema version, 417 the desired properties are empty, 500 Failed
lastDesiredStatus.descriptionlastDesiredStatus.description 状態のテキストでの説明Text description of the status
deviceHealthdeviceHealth healthy すべてのモジュールのランタイムの状態が running または stopped のどちらかである場合、unhealthy それ以外の場合healthy if the runtime status of all modules is either running or stopped, unhealthy otherwise
configurationHealth.{deploymentId}.healthconfigurationHealth.{deploymentId}.health healthy デプロイ {deploymentId} によって設定されたすべてのモジュールのランタイムの状態が running または stopped のどちらかである場合、unhealthy それ以外の場合healthy if the runtime status of all modules set by the deployment {deploymentId} is either running or stopped, unhealthy otherwise
runtime.platform.OSruntime.platform.OS デバイス上で実行されている OS の報告Reporting the OS running on the device
runtime.platform.architectureruntime.platform.architecture デバイス上の CPU のアーキテクチャの報告Reporting the architecture of the CPU on the device
systemModules.edgeAgent.runtimeStatussystemModules.edgeAgent.runtimeStatus IoT Edge エージェントの報告された状態: {"running" | "unhealthy"}The reported status of IoT Edge agent: {"running" | "unhealthy"}
systemModules.edgeAgent.statusDescriptionsystemModules.edgeAgent.statusDescription IoT Edge エージェントの報告された状態のテキストでの説明。Text description of the reported status of the IoT Edge agent.
systemModules.edgeHub.runtimeStatussystemModules.edgeHub.runtimeStatus IoT Edge ハブの状態: { "running" | "stopped" | "failed" | "backoff" | "unhealthy" }Status of IoT Edge hub: { "running" | "stopped" | "failed" | "backoff" | "unhealthy" }
systemModules.edgeHub.statusDescriptionsystemModules.edgeHub.statusDescription 異常な場合の IoT Edge ハブの状態のテキストでの説明。Text description of the status of IoT Edge hub if unhealthy.
systemModules.edgeHub.exitCodesystemModules.edgeHub.exitCode コンテナーが終了した場合に、IoT Edge ハブ コンテナーによって報告された終了コード。The exit code reported by the IoT Edge hub container if the container exits
systemModules.edgeHub.startTimeUtcsystemModules.edgeHub.startTimeUtc IoT Edge ハブが最後に起動された時間Time when IoT Edge hub was last started
systemModules.edgeHub.lastExitTimeUtcsystemModules.edgeHub.lastExitTimeUtc IoT Edge ハブが最後に終了された時間Time when IoT Edge hub last exited
systemModules.edgeHub.lastRestartTimeUtcsystemModules.edgeHub.lastRestartTimeUtc IoT Edge ハブが最後に再起動された時間Time when IoT Edge hub was last restarted
systemModules.edgeHub.restartCountsystemModules.edgeHub.restartCount このモジュールが再起動ポリシーの一部として再起動された回数。Number of times this module was restarted as part of the restart policy.
modules.{moduleId}.runtimeStatusmodules.{moduleId}.runtimeStatus モジュールの状態: { "running" | "stopped" | "failed" | "backoff" | "unhealthy" }Status of the module: { "running" | "stopped" | "failed" | "backoff" | "unhealthy" }
modules.{moduleId}.statusDescriptionmodules.{moduleId}.statusDescription 異常な場合のモジュールの状態のテキストでの説明。Text description of the status of the module if unhealthy.
modules.{moduleId}.exitCodemodules.{moduleId}.exitCode コンテナーが終了した場合に、モジュール コンテナーによって報告された終了コード。The exit code reported by the module container if the container exits
modules.{moduleId}.startTimeUtcmodules.{moduleId}.startTimeUtc モジュールが最後に起動された時間Time when the module was last started
modules.{moduleId}.lastExitTimeUtcmodules.{moduleId}.lastExitTimeUtc モジュールが最後に終了した時間Time when the module last exited
modules.{moduleId}.lastRestartTimeUtcmodules.{moduleId}.lastRestartTimeUtc モジュールが最後に再起動された時間Time when the module was last restarted
modules.{moduleId}.restartCountmodules.{moduleId}.restartCount このモジュールが再起動ポリシーの一部として再起動された回数。Number of times this module was restarted as part of the restart policy.

edgeHub の必要なプロパティEdgeHub desired properties

IoT Edge ハブのモジュール ツインは $edgeHub と呼ばれ、デバイス上で実行されている IoT Edge ハブと IoT Hub の間の通信を調整します。The module twin for the IoT Edge hub is called $edgeHub and coordinates the communications between the IoT Edge hub running on a device and IoT Hub. 必要なプロパティは、単一デバイスまたは大規模デプロイの一部として特定のデバイスにデプロイ マニフェストを適用するときに設定されます。The desired properties are set when applying a deployment manifest on a specific device as part of a single-device or at-scale deployment.

プロパティProperty 説明Description デプロイ マニフェストに必要Required in the deployment manifest
schemaVersionschemaVersion "1.0" である必要があるHas to be "1.0" はいYes
routes.{routeName}routes.{routeName} IoT Edge ハブのルートを表す文字列。A string representing an IoT Edge hub route. 詳細については、「ルートの宣言」を参照してください。For more information, see Declare routes. routes 要素は存在できますが、空です。The routes element can be present but empty.
storeAndForwardConfiguration.timeToLiveSecsstoreAndForwardConfiguration.timeToLiveSecs ルーティング エンドポイント (IoT Hub またはローカル モジュール) から切断された場合に、IoT Edge ハブがメッセージを保持する秒数。The time in seconds that IoT Edge hub keeps messages if disconnected from routing endpoints, whether IoT Hub or a local module. 値には正の整数を指定できます。The value can be any positive integer. はいYes

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

プロパティProperty 説明Description
lastDesiredVersionlastDesiredVersion この整数は、IoT Edge ハブによって処理された必要なプロパティの最後のバージョンを参照します。This integer refers to the last version of the desired properties processed by the IoT Edge hub.
lastDesiredStatus.codelastDesiredStatus.code IoT Edge ハブによって表示された最後の必要なプロパティを参照する状態コード。The status code referring to last desired properties seen by the IoT Edge hub. 使用できる値は以下の通りです。200 成功、400 無効な構成、500 失敗Allowed values: 200 Success, 400 Invalid configuration, 500 Failed
lastDesiredStatus.descriptionlastDesiredStatus.description 状態を説明するテキスト。Text description of the status.
clients.{device or moduleId}.statusclients.{device or moduleId}.status このデバイスまたはモジュールの接続状態。The connectivity status of this device or module. 可能性のある値 {"connected" | "disconnected"}。Possible values {"connected" | "disconnected"}. 切断された状態になることができるのはモジュール ID だけです。Only module identities can be in disconnected state. IoT Edge ハブに接続されるダウンストリーム デバイスは、接続されている場合にのみ表示されます。Downstream devices connecting to IoT Edge hub appear only when connected.
clients.{device or moduleId}.lastConnectTimeclients.{device or moduleId}.lastConnectTime デバイスまたはモジュールが接続された最後の時間。Last time the device or module connected.
clients.{device or moduleId}.lastDisconnectTimeclients.{device or moduleId}.lastDisconnectTime デバイスまたはモジュールが切断された最後の時間。Last time the device or module disconnected.

次のステップNext steps

これらのプロパティを使って配置マニフェストを作成する方法については、「IoT Edge モジュールをどのように使用、構成、および再利用できるかを理解する」をご覧ください。To learn how to use these properties to build out deployment manifests, see Understand how IoT Edge modules can be used, configured, and reused.