与组件配置交互 - AWS IoT Greengrass
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

与组件配置交互

组件配置 IPC 服务允许您执行以下操作:

  • 获取并设置组件配置参数

  • 订阅组件配置更新

  • 在应用组件配置之前验证组件配置更新

主题

Operations

使用以下操作来管理组件配置。

GetConfiguration

获取核心设备上的组件的配置值。您可以指定要获取其配置值的密钥路径。

Request

此操作的请求具有以下参数:

componentName

(可选) 组件的名称。

默认为发出请求的组件的名称。

keyPath

配置值的密钥路径。指定一个列表,其中每个条目是配置对象中单个级别的键。例如,指定 ["mqtt", "port"] 以获取以下配置port中的 的值。

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

Response

此操作的响应包含以下信息:

componentName

组件名称。

value

将请求的配置作为 对象。

UpdateConfiguration

更新核心设备上组件的配置值。

Request

此操作的请求具有以下参数:

keyPath

(可选)要更新的容器节点( 对象)的密钥路径。指定一个列表,其中每个条目是配置对象中单个级别的键。例如,指定键路径["mqtt"]和合并值{ "port": 443 }以在以下配置port中设置 的值。

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

密钥路径必须在配置中指定容器节点(对象)。如果组件配置中不存在该节点,则此操作会创建它并将其值设置为 中的 对象valueToMerge

默认为配置对象的根。

timestamp

当前 Unix 纪元时间(以毫秒为单位)。此操作使用此时间戳来解析密钥的并发更新。如果组件配置中的键具有的时间戳大于请求中的时间戳,则请求将失败。

valueToMerge

要在 中指定的位置合并的配置对象keyPath。有关更多信息,请参阅更新组件配置

Response

此操作不会在其响应中提供任何信息。

SubscribeToConfigurationUpdate

订阅以在组件的配置更新时接收通知。当您订阅密钥时,您会在密钥的任何子项更新时收到通知。

此操作是订阅事件消息流的订阅操作。要使用此操作,请使用处理事件消息、错误和流结束的函数定义流响应处理程序。有关更多信息,请参阅订阅 IPC 事件流

事件消息类型: ConfigurationUpdateEvents

Request

此操作的请求具有以下参数:

componentName

(可选) 组件的名称。

默认为发出请求的组件的名称。

keyPath

要订阅的配置值的密钥路径。指定一个列表,其中每个条目是配置对象中单个级别的键。例如,指定 ["mqtt", "port"] 以获取以下配置port中的 的值。

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

Response

此操作的响应包含以下信息:

messages

通知消息的流。此对象 ConfigurationUpdateEvents包含以下信息:

configurationUpdateEvent

配置更新事件。此对象 ConfigurationUpdateEvent包含以下信息:

componentName

组件名称。

keyPath

已更新的配置值的密钥路径。

SubscribeToValidateConfigurationUpdates

订阅以在此组件的配置更新之前接收通知。这可让组件验证对其自己的配置的更新。使用 SendConfigurationValidityReport 操作告知 核心配置是否有效。

重要

本地部署不会向组件通知更新。

此操作是订阅事件消息流的订阅操作。要使用此操作,请使用处理事件消息、错误和流结束的函数定义流响应处理程序。有关更多信息,请参阅订阅 IPC 事件流

事件消息类型: ValidateConfigurationUpdateEvents

Request

此操作的请求没有任何参数。

Response

此操作的响应包含以下信息:

messages

通知消息的流。此对象 ValidateConfigurationUpdateEvents包含以下信息:

validateConfigurationUpdateEvent

配置更新事件。此对象 ValidateConfigurationUpdateEvent包含以下信息:

deploymentId

更新组件的 AWS AWS IoT Greengrass 部署的 ID。

configuration

包含新配置的 对象。

SendConfigurationValidityReport

告知核心对此组件的配置更新是否有效。如果您告知核心新配置无效,则部署将失败。使用 SubscribeToValidateConfigurationUpdates 操作进行订阅以验证配置更新。

如果组件未响应验证配置更新通知,则 limbot 将等待您在部署的配置验证策略中指定的时间量。在该超时后,核心继续部署。默认组件验证超时为 20 秒。有关更多信息,请参阅创建部署和您在调用 CreateDeployment 操作时可以提供的 ConfigurationValidationPolicy 对象。

Request

此操作的请求具有以下参数:

configurationValidityReport

报告,用于告知核心配置更新是否有效。此对象 ConfigurationValidityReport包含以下信息:

status

有效性状态。此枚举 ConfigurationValidityStatus具有以下值:

  • ACCEPTED – 配置有效,并且核心可以将其应用于此组件。

  • REJECTED – 配置无效,部署失败。

deploymentId

请求配置更新的 AWS AWS IoT Greengrass 部署的 ID。

message

(可选)一条报告配置无效原因的消息。

Response

此操作不会在其响应中提供任何信息。