コンポーネント設定とやり取り - AWS IoT Greengrass

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コンポーネント設定とやり取り

コンポーネント設定 IPC サービスでは以下のことが行えます。

  • コンポーネント設定パラメータを取得および設定します。

  • コンポーネント設定の更新をサブスクライブします。

  • コンポーネント設定の更新を、nucleus が適用する前に検証します。

最小 SDK バージョン

以下の表に AWS IoT Device SDK の最小バージョンを示します。コンポーネント設定とやり取りする際は、これを使用する必要があります。

GetConfiguration

コアデバイス上のコンポーネントの設定値を取得します。設定値を取得するためのキーパスを指定します。

リクエスト

このオペレーションのリクエストには以下のパラメータがあります。

componentName (Python: component_name)

(オプション) コンポーネントの名前。

デフォルトでは、リクエストを実行するコンポーネントの名前になっています。

keyPath (Python: key_path)

設定値へのキーパス。各エントリが設定オブジェクトの単一レベルのキーとなるリストを指定します。たとえば、以下の設定で port の値を取得するには、["mqtt", "port"] を指定します。

{ "mqtt": { "port": 443 } }

コンポーネントの完全な設定を取得するには、空のリストを指定します。

レスポンス

このオペレーションのレスポンスには以下の情報が含まれます。

componentName (Python: component_name)

コンポーネントの名前。

value

オブジェクトとしてリクエストされた設定。

UpdateConfiguration

コアデバイス上のこのコンポーネントの設定値を更新します。

リクエスト

このオペレーションのリクエストには以下のパラメータがあります。

keyPath (Python: key_path)

(オプション) 更新するコンテナノード (オブジェクト) へのキーパス。各エントリが設定オブジェクトの単一レベルのキーとなるリストを指定します。たとえば、キーパス ["mqtt"] とマージ値 { "port": 443 } を指定して、以下の設定に port の値を設定します。

{ "mqtt": { "port": 443 } }

キーパスは、設定内のコンテナノード (オブジェクト) を指定する必要があります。コンポーネントの設定にノードが存在しない場合、このオペレーションによってノードが作成され、valueToMerge のオブジェクトにその値が設定されます。

設定オブジェクトのルートに対するデフォルトです。

timestamp

現在の UNIX エポック時間 (ミリ秒)。このオペレーションにおけるキーの同時更新の解決には、このタイムスタンプが使用されます。コンポーネント設定のキーのタイムスタンプがリクエストのタイムスタンプよりも大きい場合、リクエストは失敗します。

valueToMerge (Python: value_to_merge)

keyPath で指定した場所でマージする設定オブジェクト。(詳細については、コンポーネント設定の更新 を参照してください)。

レスポンス

このオペレーションはレスポンスで一切の情報を提供しません。

SubscribeToConfigurationUpdate

サブスクライブして、コンポーネントの設定更新時に通知を受け取るようにします。キーをサブスクライブすると、そのキーの子が更新されたとき通知を受けます。

このオペレーションはサブスクリプションオペレーションで、イベントメッセージのストリームをサブスクライブするというものです。このオペレーションを使用するには、イベントメッセージ、エラー、およびストリームクロージャを処理する関数を使用して、ストリームレスポンスハンドラーを定義します。(詳細については、IPC イベントストリームをサブスクライブする を参照してください)。

イベントメッセージの種類: ConfigurationUpdateEvents

リクエスト

このオペレーションのリクエストには以下のパラメータがあります。

componentName (Python: component_name)

(オプション) コンポーネントの名前。

デフォルトでは、リクエストを実行するコンポーネントの名前になっています。

keyPath (Python: key_path)

サブスクライブする設定値のキーパス。各エントリが設定オブジェクトの単一レベルのキーとなるリストを指定します。たとえば、以下の設定で port の値を取得するには、["mqtt", "port"] を指定します。

{ "mqtt": { "port": 443 } }

コンポーネント設定のすべての値の更新をサブスクライブするには、空のリストを指定します。

レスポンス

このオペレーションのレスポンスには以下の情報が含まれます。

messages

通知メッセージのストリーム。このオブジェクト (ConfigurationUpdateEvents) には、次の情報が含まれます。

configurationUpdateEvent (Python: configuration_update_event)

設定更新イベント。このオブジェクト (ConfigurationUpdateEvent) には、次の情報が含まれます。

componentName (Python: component_name)

コンポーネントの名前。

keyPath (Python: key_path)

更新された設定値へのキーパス。

SubscribeToValidateConfigurationUpdates

サブスクライブして、このコンポーネントの設定更新より前に通知を受け取るようにします。これにより、コンポーネントは各自の設定に対し更新を検証できます。SendConfigurationValidityReport オペレーションを使用して、設定が有効かどうかを nucleus に伝えます。

重要

ローカルデプロイは、コンポーネントに更新を通知しません。

このオペレーションはサブスクリプションオペレーションで、イベントメッセージのストリームをサブスクライブするというものです。このオペレーションを使用するには、イベントメッセージ、エラー、およびストリームクロージャを処理する関数を使用して、ストリームレスポンスハンドラーを定義します。(詳細については、IPC イベントストリームをサブスクライブする を参照してください)。

イベントメッセージの種類: ValidateConfigurationUpdateEvents

リクエスト

このオペレーションのリクエストはパラメータを持ちません。

レスポンス

このオペレーションのレスポンスには以下の情報が含まれます。

messages

通知メッセージのストリーム。このオブジェクト (ValidateConfigurationUpdateEvents) には、次の情報が含まれます。

validateConfigurationUpdateEvent (Python: validate_configuration_update_event)

設定更新イベント。このオブジェクト (ValidateConfigurationUpdateEvent) には、次の情報が含まれます。

deploymentId (Python: deployment_id)

コンポーネントを更新する AWS IoT Greengrass デプロイの ID。

configuration

新しい設定を含むオブジェクト。

SendConfigurationValidityReport

このコンポーネントの設定更新が有効かどうかをnucleus に伝えます。新しい設定が有効でないことを nucleus に伝えると、デプロイは失敗します。SubscribeToValidateConfigurationUpdates オペレーションを使用して、設定更新の検証をサブスクライブします。

コンポーネントが設定更新の検証の通知に応答しない場合、nucleus はデプロイの設定検証ポリシーで指定した時間だけ待機します。これがタイムアウトした後、nucleus はデプロイを続行します。デフォルトのコンポーネント検証のタイムアウトは 20 秒です。詳細については、デプロイの作成「」と、 CreateDeploymentオペレーションを呼び出すときに指定できる DeploymentConfigurationValidationPolicy オブジェクトを参照してください。

リクエスト

このオペレーションのリクエストには以下のパラメータがあります。

configurationValidityReport (Python: configuration_validity_report)

設定更新が有効かどうかを nucleus に伝えるレポート。このオブジェクト (ConfigurationValidityReport) には、次の情報が含まれます。

status

有効性のステータス。この列挙型 (ConfigurationValidityStatus) には以下の値があります。

  • ACCEPTED - 設定が有効で、nucleus はこのコンポーネントに適用できます。

  • REJECTED - 設定が有効ではなく、デプロイが失敗します。

deploymentId (Python: deployment_id)

設定更新をリクエストした AWS IoT Greengrass デプロイの ID。

message

(オプション) 設定が有効でないことの理由を報告するメッセージ。

レスポンス

このオペレーションはレスポンスで一切の情報を提供しません。