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

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

更新组件配置

组件配置是定义每个组件参数的 JSON 对象。每个组件的配方定义了其默认配置,您可以在将组件部署到核心设备时对其进行修改。

创建部署时,您可以指定配置更新以应用于每个组件。配置更新是修补程序操作,这意味着更新会修改核心设备上存在的组件配置。如果核心设备没有组件,则配置更新将修改并应用该部署的默认配置。

配置更新定义了重置更新和merge更新。重置更新定义要重置为默认值或删除的配置值。合并更新定义要为组件设置的新配置值。部署配置更新时,Amazon IoT Greengrass核心软件在合并更新之前运行重置更新。

组件可以验证您部署的配置更新。组件订阅以在部署更改其配置时接收通知,并且它可以拒绝它不支持的配置。有关更多信息,请参阅与组件配置交互

重置更新

重置更新定义要在核心设备上重置为默认值的配置值。如果配置值没有默认值,则重置更新将从组件的配置中删除该值。这可以帮助您修复因配置无效而中断的组件。

使用 JSON 指针列表定义要重置的配置值。JSON 指针以正斜杠开头/. 要标识嵌套组件配置中的值,请使用正斜杠 (/)分隔配置中每个级别的密钥。有关更多信息,请参阅 。JSON 指针规范.

注意

您只能将整个列表重置为其默认值。您不能使用重置更新来重置列表中的单个元素。

要将组件的整个配置重置为默认值,请指定一个空字符串作为重置更新。

"reset": [""]

合并更新

合并更新定义要插入到核心上的组件配置中的配置值。合并更新是 JSON 对象,Amazon IoT Greengrass核心软件将在重置更新中指定的路径中重置值后进行合并。当您使用Amazon CLI或者AmazonSDK 中,您必须将此 JSON 对象序列化为字符串。

您可以合并组件的默认配置中不存在的键值对。您还可以合并具有不同类型与具有相同键的值的键值对。新值将替换旧值。这意味着您可以更改配置对象的结构。

您可以合并空值和空字符串、列表和对象。

注意

您不能将合并更新用于将元素插入或附加到列表中。您可以替换整个列表,也可以定义每个元素都具有唯一键的对象。

Amazon IoT Greengrass使用 JSON 作为配置值。JSON 指定了一个数字类型,但不区分整数和浮点数。因此,配置值可能会转换为Amazon IoT Greengrass. 为确保组件使用正确的数据类型,我们建议您将数字配置值定义为字符串。然后,让你的组件将它们解析为整数或浮点数。这可确保您的配置值在配置和核心设备中具有相同的类型。

Examples

以下示例演示具有以下默认配置的仪表板组件的配置更新。此示例组件显示有关工业设备的信息。

{ "name": null, "mode": "REQUEST", "network": { "useHttps": true, "port": { "http": 80, "https": 443 }, }, "tags": [] }

然后,您应用以下配置更新,它指定合并更新,但不是重置更新。此配置告诉组件在 HTTP 端口 8080 上显示仪表板,其中包含来自两个锅炉的数据。

{ "merge": { "name": "Factory 2A", "network": { "useHttps": false, "port": { "http": 8080 } }, "tags": [ "/boiler/1/temperature", "/boiler/1/pressure", "/boiler/2/temperature", "/boiler/2/pressure" ] } }

此更新后,仪表板组件具有以下配置。

{ "name": "Factory 2A", "mode": "REQUEST", "network": { "useHttps": false, "port": { "http": 8080, "https": 443 } }, "tags": [ "/boiler/1/temperature", "/boiler/1/pressure", "/boiler/2/temperature", "/boiler/2/pressure" ] }

然后,应用以下配置更新以在默认 HTTPS 端口上显示仪表板,其中包含来自不同锅炉的数据。

{ "reset": [ "/network/useHttps", "/tags" ], "merge": { "tags": [ "/boiler/3/temperature", "/boiler/3/pressure", "/boiler/4/temperature", "/boiler/4/pressure" ] } }

此更新后,仪表板组件具有以下配置。

{ "name": "Factory 2A", "mode": "REQUEST", "network": { "useHttps": true, "port": { "http": 8080, "https": 443 } }, "tags": [ "/boiler/3/temperature", "/boiler/3/pressure", "/boiler/4/temperature", "/boiler/4/pressure", ] }