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

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

与组件配置交互

组件配置 IPC 服务让您可以执行以下操作:

  • 获取和设置组件配置参数。

  • 订阅组件配置更新。

  • 在 nucleus 应用组件配置更新之前对其进行验证。

最低 SDK 版本

下表列出了与组件配置交互时Amazon IoT Device SDK必须使用的最低版本。

GetConfiguration

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

请求

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

componentName(Python:component_name)

(可选)组件名称。

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

keyPath(Python:key_path)

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

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

要获取组件的完整配置,请指定空列表。

响应

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

componentName(Python:component_name)

组件名称。

value

以对象形式请求的配置。

UpdateConfiguration

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

请求

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

keyPath(Python:key_path)

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

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

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

默认为配置对象的根级。

timestamp

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

valueToMerge(Python:value_to_merge)

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

响应

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

SubscribeToConfigurationUpdate

订阅通知,组件配置更新时接收通知。当您订阅某个密钥时,当该密钥的任何子密钥更新时,您都会收到通知。

此操作是一种订阅操作,您可以在其中订阅事件消息流。要使用此操作,请定义一个流响应处理程序,其中包含处理事件消息、错误和流关闭的函数。有关更多信息,请参阅订阅 IPC 事件直播

事件消息类型:ConfigurationUpdateEvents

请求

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

componentName(Python:component_name)

(可选)组件名称。

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

keyPath(Python:key_path)

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

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

要订阅组件配置中所有值的更新,请指定一个空列表。

响应

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

messages

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

configurationUpdateEvent(Python:configuration_update_event)

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

componentName(Python:component_name)

组件名称。

keyPath(Python:key_path)

更新后的配置值的关键路径。

SubscribeToValidateConfigurationUpdates

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

重要

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

此操作是一种订阅操作,您可以在其中订阅事件消息流。要使用此操作,请定义一个流响应处理程序,其中包含处理事件消息、错误和流关闭的函数。有关更多信息,请参阅订阅 IPC 事件直播

事件消息类型:ValidateConfigurationUpdateEvents

请求

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

响应

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

messages

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

validateConfigurationUpdateEvent(Python:validate_configuration_update_event)

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

deploymentId(Python:deployment_id)

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

configuration

包含新配置的对象。

SendConfigurationValidityReport

告诉 nucleus 此组件的配置更新是否有效。如果你告诉核心新配置无效,部署就会失败。使用SubscribeToValidateConfigurationUpdates操作订阅以验证配置更新。

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

请求

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

configurationValidityReport(Python:configuration_validity_report)

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

status

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

  • ACCEPTED— 配置有效,核心可以将其应用于该组件。

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

deploymentId(Python:deployment_id)

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

message

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

响应

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