Greengrass Nucleus - AWS IoT Greengrass

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

Greengrass Nucleus

Greengrass nucleus 组件 aws.greengrass.Nucleus () 是必备组件,也是在设备上运行 AWS IoT Greengrass 核心软件的最低要求。您可以将此组件配置为远程自定义和更新 AWS IoT Greengrass Core 软件。部署此组件可在核心设备上配置代理、设备角色和 AWS IoT 事物配置等设置。

注意

从 Greengrass 2.14 版本开始,内存占用优化版本的 nucleus 设备运行时可用于受限的边缘设备。有关其配置和使用的更多信息,请参阅 Greengrass nucleus lite。

重要

当 nucleus 组件的版本发生变化时,或者当你更改某些配置参数时, AWS IoT Greengrass Core 软件(包括 nucleus 和设备上的所有其他组件)会重新启动以应用更改。

部署组件时, AWS IoT Greengrass 会安装该组件所有依赖项的最新支持版本。因此,如果您向事物组中添加新设备或更新针对这些设备的部署,则 AWS提供的公共组件的新补丁版本可能会自动部署到您的核心设备上。某些自动更新(例如 Nucleus 更新)可能会导致您的设备意外重启。

为防止设备上运行的组件出现意外更新,我们建议您在创建部署时直接包含您对该组件的首选版本。有关 AWS IoT Greengrass 核心软件更新行为的更多信息,请参阅更新 AWS IoT Greengrass Core 软件(OTA)

版本

此组件具有以下版本:

  • 2.14.x

  • 2.13.x

  • 2.12.x

  • 2.11.x

  • 2.10.x

  • 2.9.x

  • 2.8.x

  • 2.7.x

  • 2.6.x

  • 2.5.x

  • 2.4.x

  • 2.3.x

  • 2.2.x

  • 2.1.x

  • 2.0.x

设备要求

注意

您可以使用 AWS IoT Device Tester AWS IoT Greengrass 来验证您的设备是否可以运行 AWS IoT Greengrass Core 软件并与通信 AWS Cloud。有关更多信息,请参阅 使用适用于 AWS IoT Greengrass V2 的 AWS IoT Device Tester

Linux
  • 使用支持AWS 区域的 AWS IoT Greengrass V2。有关支持的区域列表,请参见 AWS 一般参考 中的 AWS IoT Greengrass V2 端点和配额

  • 至少 256 MB 磁盘空间可供 AWS IoT Greengrass 酷睿软件使用。此要求不包括部署到核心设备的组件。

  • 至少 96 MB RAM 分配给 AWS IoT Greengrass 核心软件。此要求不包括核心设备上运行的组件。有关更多信息,请参阅 使用JVM选项控制内存分配

  • Java 运行时环境 (JRE) 版本 8 或更高版本。Java 必须在设备的 PATH 环境变量中可用。要使用 Java 开发自定义组件,必须安装 Java 开发套件 (JDK)。我们建议您使用 Amazon Corrett o 或JDK开放长期支持版本。需要版本 8 或更高版本。

  • GNUC 库 (glibc) 版本 2.25 或更高版本。

  • 您必须以 root 用户身份运行 AWS IoT Greengrass Core 软件。例如,使用 sudo

  • 运行 AWS IoT Greengrass Core 软件(例如root)的 root 用户必须具有sudo与任何用户和任何组一起运行的权限。/etc/sudoers 文件必须授予该用户以其他组身份运行 sudo 的权限。用户权限在 /etc/sudoers 中应如以下示例所示。

    root ALL=(ALL:ALL) ALL
  • 核心设备必须能够对一组端点和端口执行出站请求。有关更多信息,请参阅 允许设备流量通过代理或防火墙

  • 必须使用 exec 权限挂载 /tmp 目录。

  • 以下所有 Shell 命令:

    • ps -ax -o pid,ppid

    • sudo

    • sh

    • kill

    • cp

    • chmod

    • rm

    • ln

    • echo

    • exit

    • id

    • uname

    • grep

  • 您的设备可能还需要以下可选的 Shell 命令:

    • (可选)systemctl。此命令用于将 AWS IoT Greengrass Core 软件设置为系统服务。

    • (可选)useraddgroupaddusermod。这些命令用于设置 ggc_user 系统用户和 ggc_group 系统组。

    • (可选)mkfifo。此命令用于将 Lambda 函数作为组件运行。

  • 要为组件进程配置系统资源限制,您的设备必须运行 Linux 内核版本 2.6.24 或更高版本。

  • 要运行 Lambda 函数,您的设备必须满足更多要求。有关更多信息,请参阅 Lambda 函数要求

Windows
  • 使用支持AWS 区域的 AWS IoT Greengrass V2。有关支持的区域列表,请参见 AWS 一般参考 中的 AWS IoT Greengrass V2 端点和配额

  • 至少 256 MB 磁盘空间可供 AWS IoT Greengrass 酷睿软件使用。此要求不包括部署到核心设备的组件。

  • 至少 160 MB RAM 分配给 AWS IoT Greengrass 核心软件。此要求不包括核心设备上运行的组件。有关更多信息,请参阅 使用JVM选项控制内存分配

  • Java 运行时环境 (JRE) 版本 8 或更高版本。Java 必须在设备上的PATH系统变量上可用。要使用 Java 开发自定义组件,必须安装 Java 开发套件 (JDK)。我们建议您使用 Amazon Corrett o 或JDK开放长期支持版本。需要版本 8 或更高版本。

    注意

    要使用 Greengrass nucleus 的 2.5.0 版本,必须使用 64 位版本的 Java 运行时环境 ()。JREGreengrass nucleus 版本 2.5.1 支持 32 位和 64 位。JREs

  • 安装 AWS IoT Greengrass 核心软件的用户必须是管理员。

  • 您必须将 AWS IoT Greengrass Core 软件作为系统服务进行安装。安装软件时指定 --setup-system-service true

  • 每个运行组件进程的用户都必须存在于 LocalSystem 账户中,并且该用户的名字和密码必须位于该 LocalSystem 账户的 Credential Manager 实例中。当你按照说明安装 C AWS IoT Greengrass ore 软件时,你可以设置这个用户。

  • 核心设备必须能够对一组端点和端口执行出站请求。有关更多信息,请参阅 允许设备流量通过代理或防火墙

支持的平台

AWS IoT Greengrass 正式支持运行以下平台的设备。平台未包含在此列表中的设备可能可以运行,但只能在这些指定平台上 AWS IoT Greengrass 进行测试。

Linux

架构:

  • Armv7l

  • Armv8 () AArch64

  • x86_64

Windows

架构:

  • x86_64

版本:

  • Windows 10

  • Windows 11

  • Windows Server 2019

  • Windows Server 2022

注意

Windows 设备目前不支持某些 AWS IoT Greengrass 功能。有关更多信息,请参阅按操作系统划分的 Greengrass 功能兼容性Windows 设备的功能注意事项

Windows 设备的功能注意事项

Windows 设备目前不支持某些 AWS IoT Greengrass 功能。查看功能差异以确认 Windows 设备是否满足您的要求。有关更多信息,请参阅 按操作系统划分的 Greengrass 功能兼容性

Linux 平台也可以 AWS IoT Greengrass V2 在 Docker 容器中运行。有关更多信息,请参阅 在 Docker 容器中运行 AWS IoT Greengrass Core 软件

要构建基于 Linux 的自定义操作系统,可以在项目 AWS IoT Greengrass V2 中使用 BitBake 配方。meta-awsmeta-aws项目提供了一些方法,可用于在使用Yocto Project构建 AWS 框架OpenEmbedded和Yocto Project构建框架构建的嵌入式Linux 系统中构建边缘软件功能。Yocto 项目是一个开源协作项目,可帮助您为嵌入式应用程序构建基于 Linux 的自定义系统,而不考虑硬件架构。在您的设备上 AWS IoT Greengrass V2 安装、配置和自动运行 AWS IoT Greengrass Core 软件的 BitBake 秘诀。

操作系统

此组件可以安装在运行以下操作系统的核心设备上:

  • Linux

  • Windows

有关更多信息,请参阅 支持的平台

要求

设备必须满足某些要求才能安装和运行 Greengrass nucleus 和 Core 软件。 AWS IoT Greengrass 有关更多信息,请参阅 设备要求

支持 Greengrass nucleus 组件在中运行。VPC要在中部署此组件VPC,需要满足以下条件。

  • Greengrass 核心组件必须连接到、 AWS IoT data凭证 AWS IoT 和 Amazon S3。

依赖项

Greengrass Nucleus 不包含任何组件依赖关系。但是,一些 AWS提供的组件将内核作为依赖关系包含在内。有关更多信息,请参阅 AWS提供的组件

有关组件依赖关系的更多信息,请参阅组件配方参考

下载并安装

您可以下载安装程序,在您的设备上安装 Greengrass Nucleus 组件。此安装程序将您的设备设置为 Greengrass 核心设备。您可以执行两种类型的安装:一种是为您创建所需 AWS 资源的快速安装,另一种是手动安装,您可以自己创建 AWS 资源。有关更多信息,请参阅 安装 AWS IoT Greengrass Core 软件

您也可以按照教程安装 Greengrass Nucleus 并探索 Greengrass 组件开发。有关更多信息,请参阅 教程:入门 AWS IoT Greengrass V2

配置

此组件提供您可以在部署组件时自定义的以下配置参数。某些参数要求 AWS IoT Greengrass Core软件重新启动才能生效。有关为什么以及如何配置此组件的详细信息,请参阅 配置 AWS IoT Greengrass 核心软件

iotRoleAlias

指向代币交换 AWS IoT 角色的IAM角色别名。 AWS IoT 凭证提供者扮演此角色是为了允许 Greengrass 核心设备与服务进行交互。 AWS 有关更多信息,请参阅 授权核心设备与 AWS 服务交互

当你使用--provision true选项运行 AWS IoT Greengrass Core 软件时,该软件会预置一个角色别名并在 nucleus 组件中设置其值。

interpolateComponentConfiguration

(可选)您可以启用 Greengrass Nucleus,以便在组件配置中插入组件配方变量合并配置更新。我们建议您将此选项设置为 true,以便核心设备可以运行在其配置中使用配方变量的 Greengrass 组件。

此组件的 v2.6.0 及更高版本中提供了此功能。

默认值:false

networkProxy

(可选)用于所有连接的网络代理。有关更多信息,请参阅 通过端口 443 或网络代理进行连接

重要

当您部署对此配置参数的更改时, AWS IoT Greengrass Core 软件会重新启动以使更改生效。

该对象包含以下信息:

noProxyAddresses

(可选)不使用代理的 IP 地址或主机名的逗号分隔列表。

proxy

要连接的代理。该对象包含以下信息:

url

格式URL为代理服务器的scheme://userinfo@host:port

  • scheme – 方案,必须是 httphttps

    重要

    Greengrass 核心设备必须运行 Greengrass nucleu s v2.5.0 或更高版本才能使用代理。HTTPS

    如果您配置HTTPS代理,则必须将代理服务器 CA 证书添加到核心设备的 Amazon 根 CA 证书中。有关更多信息,请参阅 使核心设备能够信任代HTTPS理

  • userinfo –(可选)用户名和密码信息。如果您在 url 中指定此信息,则 Greengrass 核心设备将忽略 usernamepassword 字段。

  • host – 代理服务器的主机名或 IP 地址。

  • port –(可选)端口号。如果您未指定端口,则 Greengrass 核心设备将使用以下默认值:

    • http – 80

    • https – 443

username

(可选)代理服务器进行身份验证时使用的用户名。

password

(可选)用于对代理服务器进行身份验证的密码。

mqtt

(可选)Greengrass 核心设备的MQTT配置。有关更多信息,请参阅 通过端口 443 或网络代理进行连接

重要

当您部署对此配置参数的更改时, AWS IoT Greengrass Core 软件会重新启动以使更改生效。

该对象包含以下信息:

port

(可选)用于MQTT连接的端口。

默认值:8883

keepAliveTimeoutMs

(可选)客户端为保持连接活动而发送的每PING条消息之间的间隔时间(以毫秒为单位)。MQTT此值必须大于 pingTimeoutMs

默认值:60000(60 秒)。

pingTimeoutMs

(可选)客户端等待从服务器接收 PINGACK 消息的时间(以毫秒为单位)。如果等待时间超过超时时间,核心设备将关闭并重新打开MQTT连接。此值必须小于 keepAliveTimeoutMs

默认值:30000(30 秒)

operationTimeoutMs

(可选)客户端等待MQTT操作(例如CONNECTPUBLISH)完成的时间(以毫秒为单位)。此选项不适用于消息MQTTPING或保持活动状态。

默认值:30000(30 秒)

maxInFlightPublishes

(可选)可以同时传输的未确认MQTT的 QoS 1 消息的最大数量。

此组件的 v2.1.0 及更高版本中提供了此功能。

默认值:5

有效范围:最大值为 100

maxMessageSizeInBytes

(可选)MQTT消息的最大大小。如果一条消息超过此大小,Greengrass Nucleus会拒绝该消息并给出错误。

此组件的 v2.1.0 及更高版本中提供了此功能。

默认值:131072(128 KB)

有效范围:最大值为 2621440(2.5 MB)

maxPublishRetry

(可选)消息发布失败的最大重试次数。您可以指定 -1 以无限次重试。

此组件的 v2.1.0 及更高版本中提供了此功能。

默认值:100

spooler

(可选)Greeng MQTT rass 核心设备的后台处理程序配置。该对象包含以下信息:

storageType

用于存储消息的存储类型。如果将 storageType 设置为 Disk,则可以配置 pluginName。您可指定 MemoryDisk

此功能适用于 Greengrass Nucleus 组件的 v2.11.0 及更高版本。

重要

如果MQTT后台处理程序设置storageType为,Disk并且您想要将 Greengrass nucleus 从 2.11.x 版本降级到早期版本,则必须将配置更改回到。MemoryGreengrass Nucleus版本 2.10.x 及更早版本支持的 storageType 的唯一配置是 Memory。不遵循此指南可能会导致后台处理程序中断。这将导致您的 Greengrass 核心设备无法向发送消息。MQTT AWS Cloud

默认值:Memory

pluginName

(可选)插件组件名称。仅当 storageType 设置为 Disk 时,才会使用此组件。此选项默认为 aws.greengrass.DiskSpooler,并将使用 Greengrass 提供的 磁盘后台处理程序

此功能适用于 Greengrass Nucleus 组件的 v2.11.0 及更高版本。

默认值:"aws.greengrass.DiskSpooler"

maxSizeInBytes

(可选)核心设备在内存中存储未处理MQTT消息的最大缓存大小。如果缓存已满,将拒绝新消息。

默认值:2621440(2.5 MB)

keepQos0WhenOffline

(可选)您可以对核心设备离线MQTT时收到的 QoS 0 消息进行后台处理。如果将此选项设置为 true,则核心设备会缓冲离线时无法发送的 QoS 0 消息。如果将此选项设置为 false,则核心设备会丢弃这些消息。除非缓冲区已满,否则核心设备始终会缓冲 QoS 1 消息。

默认值:false

version

(可选)的版本MQTT。您可指定 mqtt3mqtt5

此功能适用于 Greengrass Nucleus 组件的 v2.10.0 及更高版本。

默认值:mqtt5

receiveMaximum

(可选)代理可以发送的未确认 QoS1 数据包的最大数量。

此功能适用于 Greengrass Nucleus 组件的 v2.10.0 及更高版本。

默认值:100

sessionExpirySeconds

(可选)您可以从 IoT Core 请求持续会话的时间(以秒为单位)。默认值为支持的最长时间 AWS IoT Core。

此功能适用于 Greengrass Nucleus 组件的 v2.10.0 及更高版本。

默认值:604800 (7 days)

minimumReconnectDelaySeconds

(可选)重新连接行为的选项。重新连接的最短时间(MQTT以秒为单位)。

此功能适用于 Greengrass Nucleus 组件的 v2.10.0 及更高版本。

默认值:1

maximumReconnectDelaySeconds

(可选)重新连接行为的选项。重新连接的最大时间(MQTT以秒为单位)。

此功能适用于 Greengrass Nucleus 组件的 v2.10.0 及更高版本。

默认值:120

minimumConnectedTimeBeforeRetryResetSeconds

(可选)重新连接行为的选项。在重试延迟重置到最小值之前,连接必须处于活动状态的时间(以秒为单位)。

此功能适用于 Greengrass Nucleus 组件的 v2.10.0 及更高版本。

默认值:30

jvmOptions

(可选)用于运行 AWS IoT Greengrass 核心软件的JVM选项。有关运行 AWS IoT Greengrass 酷睿软件的推荐JVM选项的信息,请参阅使用JVM选项控制内存分配

重要

当您部署对此配置参数的更改时, AWS IoT Greengrass Core 软件会重新启动以使更改生效。

iotDataEndpoint

您的 AWS IoT 数据端点 AWS 账户。

当你使用该--provision true选项运行 AWS IoT Greengrass Core 软件时,该软件会从 AWS IoT 中获取您的数据和凭据端点,并将其设置在 nucleus 组件中。

iotCredEndpoint

您的 AWS IoT 凭证终端节点 AWS 账户。

当你使用该--provision true选项运行 AWS IoT Greengrass Core 软件时,该软件会从 AWS IoT 中获取你的数据和凭据端点,并将其设置在 nucleus 组件中。

greengrassDataPlaneEndpoint

此组件的 v2.7.0 及更高版本中提供了此功能。

有关更多信息,请参阅 使用由私有 CA 签名的设备证书

greengrassDataPlanePort

此组件的 v2.0.4 及更高版本中提供了此功能。

(可选)用于数据面板连接的端口。有关更多信息,请参阅 通过端口 443 或网络代理进行连接

重要

您必须指定设备可以进行出站连接的端口。如果您指定被屏蔽的端口,则设备将无法连接 AWS IoT Greengrass 以接收部署。

从以下选项中进行选择:

  • 443

  • 8443

默认值:8443

awsRegion

AWS 区域 要使用的。

runWithDefault

用于运行组件的系统用户。

重要

当您部署对此配置参数的更改时, AWS IoT Greengrass Core 软件会重新启动以使更改生效。

该对象包含以下信息:

posixUser

核心设备用于运行通用组件和 Lambda 组件的系统用户名称或 ID,以及系统组(可选)。使用以下格式指定由半角冒号(:)分隔的用户和组:user:group。组是可选的。如果您未指定群组,则 AWS IoT Greengrass Core 软件将使用该用户的主群组。举例来说,可以指定 ggc_userggc_user:ggc_group。有关更多信息,请参阅 配置运行组件的用户

当你使用--component-default-user ggc_user:ggc_group选项运行 AWS IoT Greengrass Core 软件安装程序时,软件会在 nucleus 组件中设置此参数。

windowsUser

此组件的 v2.5.0 及更高版本中提供了此功能。

用于在 Windows 核心设备上运行此组件的 Windows 用户名称。用户必须存在于每台 Windows 核心设备上,其用户名和密码必须存储在 LocalSystem 账户的凭据管理器实例中。有关更多信息,请参阅 配置运行组件的用户

当你使用--component-default-user ggc_user选项运行 AWS IoT Greengrass Core 软件安装程序时,软件会在 nucleus 组件中设置此参数。

systemResourceLimits

此组件的 v2.4.0 及更高版本中提供了此功能。 AWS IoT Greengrass 目前不支持在 Windows 核心设备上使用此功能。

默认情况下适用于通用和非容器化 Lambda 组件进程的系统资源限制。您可在创建部署时覆盖单个组件的系统资源限制。有关更多信息,请参阅 配置组件的系统资源限制

该对象包含以下信息:

cpus

每个组件的进程可以在核心设备上使用的最大CPU时间。核心设备的总CPU时间等于设备的CPU内核数。例如,在具有 4 CPU 个内核的核心设备上,您可以将此值设置为,2将每个组件的进程使用率限制在每个内CPU核的 50% 以内。在具有 1 个CPU内核的设备上,您可以将此值设置为,0.25将每个组件的进程使用率限制在 25% 以内CPU。如果将此值设置为大于CPU内核数的数字,则 AWS IoT Greengrass Core 软件不会限制组件的CPU使用。

memory

每个组件的进程可以在核心设备上使用的最大数量RAM(以千字节为单位)。

s3EndpointType

(可选)S3 端点类型。此参数仅对美国东部(弗吉尼亚州北部)(us-east-1)地区生效。从任何其他地区设置此参数将被忽略。从以下选项中进行选择:

  • REGIONAL— S3 客户端和预签名URL使用区域终端节点。

  • GLOBAL— S3 客户端和预签名URL使用传统端点。

  • DUALSTACK— S3 预签名URL使用双栈端点。

默认值:GLOBAL

fipsMode

(可选)让 Greengrass 使用端点。FIPS有关如何启用FIPS终端节点的更多信息,请参阅终FIPS端节点

从以下选项中进行选择:

  • true设置为 true 时,端点将使用FIPS端点。

  • false如果为 false,则端点将不使用FIPS端点。

默认值:false

logging

(可选)核心设备的日志记录配置。有关如何配置和使用 Greengrass 日志的更多信息,请参阅 监控 AWS IoT Greengrass 日志

该对象包含以下信息:

level

(可选)要输出的日志消息的最低级别。

从以下日志级别中选择,此处按级别顺序列出:

  • DEBUG

  • INFO

  • WARN

  • ERROR

默认值:INFO

format

(可选)日志的数据格式。从以下选项中进行选择:

默认值:TEXT

outputType

(可选)日志的输出类型。从以下选项中进行选择:

  • FILE— C AWS IoT Greengrass ore 软件将日志输出到您在中指定的目录中的文件outputDirectory

  • CONSOLE— C AWS IoT Greengrass ore 软件将日志打印到stdout。选择此选项可在核心设备打印日志时查看日志。

默认值:FILE

fileSizeKB

(可选)每个日志文件的最大大小(以千字节表示)。日志文件超过此最大文件大小后, AWS IoT Greengrass Core 软件会创建一个新的日志文件。

仅当为 outputType 指定 FILE 时,此参数才适用。

默认值:1024

totalLogsSizeKB

(可选)每个组件(包括 Greengrass Nucleus)的最大日志文件总大小(以千字节表示)。Greengrass Nucleus的日志文件还包括来自插件组件的日志。当组件的日志文件总大小超过此最大大小后, AWS IoT Greengrass Core 软件会删除该组件最旧的日志文件。

此参数等同于日志管理器组件的磁盘空间限制参数(diskSpaceLimit),您可为 Greengrass Nucleus(系统)和每个组件指定该参数。 AWS IoT Greengrass Core 软件使用两个值中的最小值作为 Greengrass 核和每个组件的最大总日志大小。

仅当为 outputType 指定 FILE 时,此参数才适用。

默认值:10240

outputDirectory

(可选)日志文件的输出目录。

仅当为 outputType 指定 FILE 时,此参数才适用。

默认值:/greengrass/v2/logs,其中 /greengrass/v2 是 AWS IoT Greengrass 根文件夹。

fleetstatus

此组件的 v2.1.0 及更高版本中提供了此参数。

(可选)核心设备的实例集状态配置。

该对象包含以下信息:

periodicStatusPublishIntervalSeconds

(可选)核心设备向 AWS Cloud发布设备状态的间隔时间(以秒为单位)。

最小值:86400(24 小时)

默认值:86400(24 小时)

telemetry

(可选)核心设备的系统运行状况遥测配置。有关遥测指标以及如何处理遥测数据的更多信息,请参阅 从 AWS IoT Greengrass 核心设备收集系统运行状况遥测数据

该对象包含以下信息:

enabled

(可选)您可以启用或禁用遥测。

默认值:true

periodicAggregateMetricsIntervalSeconds

(可选)核心设备汇总指标的时间间隔(以秒为单位)。

如果将此值设置为低于支持的最小值,则内核将改用默认值。

最低:3600

默认值:3600

periodicPublishMetricsIntervalSeconds

(可选)核心设备向 AWS Cloud发布遥测指标的间隔时间(以秒为单位)。

如果将此值设置为低于支持的最小值,则内核将改用默认值。

最低:86400

默认值:86400

deploymentPollingFrequencySeconds

(可选)轮询部署通知的时间段(以秒为单位)。

默认值:15

componentStoreMaxSizeBytes

(可选)组件存储在磁盘上的最大大小,其中包括组件配方和构件。

默认值:10000000000(10 GB)

platformOverride

(可选)标识核心设备平台的属性字典。使用它来定义自定义平台属性,组件配方可以使用这些属性来识别组件的正确生命周期和构件。例如,您可以定义硬件功能属性,以便仅部署组件运行所需的最小构件集。有关更多信息,请参阅组件配方中的清单平台参数

您也可以使用此参数来覆盖核心设备的 osarchitecture 平台属性。

httpClient

此组件的 v2.5.0 及更高版本中提供了此参数。

(可选)核心设备的HTTP客户端配置。这些配置选项适用于此组件HTTP发出的所有请求。如果核心设备在较慢的网络上运行,则可以增加这些超时持续时间以防止HTTP请求超时。

该对象包含以下信息:

connectionTimeoutMs

(可选)连接请求超时之前等待连接打开的时间(以毫秒为单位)。

默认值:2000(2 秒)

socketTimeoutMs

(可选)连接超时之前等待通过打开的连接传输数据的时间(以毫秒为单位)。

默认值:30000(30 秒)

例 示例:配置合并更新
{ "iotRoleAlias": "GreengrassCoreTokenExchangeRoleAlias", "networkProxy": { "noProxyAddresses": "http://192.168.0.1,www.example.com", "proxy": { "url": "http://my-proxy-server:1100", "username": "Mary_Major", "password": "pass@word1357" } }, "mqtt": { "port": 443 }, "greengrassDataPlanePort": 443, "jvmOptions": "-Xmx64m", "runWithDefault": { "posixUser": "ggc_user:ggc_group" } }

本地日志文件

此组件使用以下日志文件。

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
查看此组件的日志
  • 在核心设备上运行以下命令以实时查看此组件的日志文件。将/greengrass/v2C:\greengrass\v2替换为 AWS IoT Greengrass 根文件夹的路径。

    Linux
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

更改日志

下表介绍每个组件版本的更改。

版本

更改

emrfs

错误修复和改进
  • 修复了IPC PubSub 订阅关闭中的内存泄漏问题。

  • 修复了 skipif 条件为真时由于启动超时而导致组件进入ERRORED状态的运行生命周期。

  • 修复了TLS策略设置为 TLS13 _1_3_2022_10 AWS IoT Core 时核心设备无法连接的问题。

新特征
  • 新的双栈端点支持支持IPv6网络通信。

  • 增强了对 nucleus 重启失败和Launch目录损坏的弹性。

2.13.0

错误修复和改进
  • 取消部署改进:现在可以在合并新配置以及等待服务启动时取消部署。

新特征
  • Nucleus 中的 Suppor FIPS t 端点。

2.12.6

错误修复和改进
  • 修复了导致某些ARMv8处理器(包括 Jetson Nano)在启动时崩溃的问题。

2.12.5

错误修复和改进
  • 修复了以下问题:在回滚以前损坏的具有硬依赖关系的组件时,部署回滚偶尔会卡住。

  • 修复了以下问题:实例集预置后内核不发布状态更新。

  • 在出现 404 错误GetDeploymentConfigurationAPI后添加重试次数。

2.12.4

错误修复和改进
  • 修复了以下问题:在某些 Linux 设备上启动时内核进入死锁状态。

2.12.3

警告

此版本不再可用。此版本的改进将在此组件的更高版本中提供。

错误修复和改进

  • 修复了以下问题:在内核重启后和组件恢复期间,内核无法报告正确的组件状态。

  • 常规错误修复和性能改进。

2.12.2

错误修复和改进
  • 修复了以下问题:旧日志未正确清理。

  • 常规错误修复和性能改进。

2.12.1

错误修复和改进
  • 修复了 nucleus 可能重复MQTT订阅部署主题的问题,从而导致额外的日志记录和MQTT发布。

2.12.0

新特征
  • 支持您将引导生命周期步骤作为回滚部署的一部分来运行。

2.11.3

错误修复和改进
  • 修复了内核中的一个问题,即当其组件的依赖关系失败时,它可能会错误地启动组件。

新特征
  • 添加了可配置的 s3 端点类型。

2.11.2

错误修复和改进
  • 修复了 nucleus MQTT 5 客户端中的一个问题,即在使用大量(> 50)订阅时,它可能会显示为离线。

  • 添加针对 doc TCP ker 拨号失败的重试功能。

2.11.1

错误修复和改进
  • 修复了以下问题:如果引导任务失败且部署元数据文件损坏,则内核无法启动。

  • 修复了以下问题:部署状态更新中未报告按需 Lambda 组件。

  • 增加了对重复授权策略的支持IDs。

2.11.0

新特征
  • 支持您取消本地部署。

  • 支持您为本地部署配置故障处理策略。

  • 添加了对磁盘后台处理程序插件的支持。

2.10.3

错误修复和改进
  • 修复了 Greengrass 在使用 #11 提供程序时不订阅部署通知的问题。PKCS

2.10.2

错误修复和改进
  • 允许对组件生命周期进行不区分大小写的解析。

  • 修复了未正确重新创建环境PATH变量的问题。

  • 修复了组件的代理URI编码,包括带有特殊字符的用户名的流管理器。

2.10.1

错误修复和改进
  • 修复了可能导致某些ARMv8处理器(包括 Jetson Nano)在启动时崩溃的问题。

  • Greengrass 不再关闭组件的标准入口,这会将行为恢复到 2.10.0 之前的行为

2.10.0

新特征
  • 添加了对空正则表达式的 interpolateComponentConfiguration 支持。Greengrass 现在可从根配置对象中进行插值。

  • 增加了对MQTT5的支持。

  • 添加了无需扫描即可快速加载插件组件的机制。

  • 支持 Greengrass 通过删除未使用的 Docker 映像来节省磁盘空间。

错误修复和改进
  • 修复了以下问题:回滚会将部署中的某些配置值保留不变。

  • 修复了 Greengrass nucleus 验证自定义非凭据和数据端点中的域序列的问题。 AWS AWS

  • 更新多组依赖关系解析以通过 AWS Cloud 协商重新解析所有组依赖关系,而不是锁定到活动版本。此更新还删除了部署错误代码 INSTALLED_COMPONENT_NOT_FOUND

  • 更新了 Greengrass Nucleus,以在本地已存在 Docker 映像时跳过下载这些映像。

  • 更新了 Greengrass Nucleus,以在超时到期之前重启组件安装步骤。

  • 其他小型修复和改进。

2.9.6

错误修复和改进
  • 修复了 Greengrass 部署失败并LAUNCH显示错误 DIRECTORY _ CORRUPTED _ 以及随后的设备重启无法启动 Greengrass 的问题。当您在需要重启 Greengrass 才能部署的多个事物组之间移动 Greengrass 设备时,可能会发生此错误。

2.9.5

新特征
  • 支持 Greengrass Nucleus软件签名验证。

错误修复和改进
  • 修复了以下问题:当本地配方元数据区域与 Greengrass Nucleus启动区域不匹配时,部署会失败。发生这种情况时,Greengrass Nucleus现在会与云重新协商。

  • 修复了MQTT消息后台处理程序已满且从不删除消息的问题。

  • 其他小型修复和改进。

2.9.4

错误修复和改进
  • 在丢弃 QOS 0 条消息之前检查是否存在空消息。

  • 如果作业状态详细信息值超过 1024 个字符的限制,则将其截断。

  • 更新了 Windows 的引导脚本,以正确读取 Greengrass 根路径(如果该路径包含空格)。

  • 更新订阅, AWS IoT Core 以便在未发送订阅响应时丢弃客户端消息。

  • 确保内核在主配置文件损坏或丢失时从备份文件加载其配置。

2.9.3

错误修复和改进
  • 确保MQTT客户端IDs不会被重复。

  • 添加了更强大的文件读取和写入功能,以避免损坏以及从损坏中恢复。

  • 在特定的网络相关错误上重试 Docker 映像提取。

  • 添加MQTT连接noProxyAddresses选项。

2.9.2

错误修复和改进
  • 修复了以下问题:配置 interpolateComponentConfiguration 不适用于正在进行的部署。

  • OSHI用于列出所有子进程。

2.9.1

错误修复和改进
  • 添加了以下修复:如果部署删除插件组件,Greengrass 会重新启动。

2.9.0

新特征
  • 支持创建子部署,这些子部署可以使用较小的设备子集重试部署。此功能能以更有效的方法来测试和解决不成功的部署。

错误修复和改进
  • 改进了对没有 useraddgroupaddusermod 的系统的支持。

  • 其他小型修复和改进。

2.8.1

错误修复和改进
  • 修复了 Greengrass API 错误无法正确生成部署错误代码的问题。

  • 修复了以下问题:在部署期间组件达到 ERRORED 状态时,实例集状态更新发送不准确的信息。

  • 修复了以下问题;Greengrass 的现有订阅超过 50 个时,部署无法完成。

2.8.0

新特征
  • 更新了 Greengrass Nucleus,以报告部署运行状态响应,其中包括无法将组件部署到核心设备时的详细错误代码。有关更多信息,请参阅 详细的部署错误代码

  • 更新了 Greengrass Nucleus,以报告组件运行状态响应,其中包括组件进入 BROKENERRORED 状态时的详细错误代码。有关更多信息,请参阅 详细的组件状态代码

  • 扩展状态消息字段以改善设备的云可用性信息。

  • 提高了实例集状态服务的稳健性。

错误修复和改进
  • 允许损坏的组件在配置更改时重新安装。

  • 修复了以下问题:在引导部署期间内核重启会导致部署失败。

  • 修复了以下问题:Windows 中根路径包含空格时安装失败。

  • 修复了以下问题:在部署使用新版本的关闭脚本期间组件关闭。

  • 各种关闭改进。

  • 其他小型修复和改进。

2.7.0

新特征
  • 更新 Greengrass 核心,以便在核心设备应用本地部署时向 AWS IoT Greengrass 云端发送状态更新。

  • 添加对由自定义证书颁发机构 (CA) 签名的客户端证书的支持,CA 未在其中注册 AWS IoT。要使用此功能,您可以将新的 greengrassDataPlaneEndpoint 配置选项设置为 iotdata。有关更多信息,请参阅 使用由私有 CA 签名的设备证书

错误修复和改进
  • 修复了以下问题:在某些情况下,当内核停止或重启时,Greengrass Nucleus会回滚部署。现在,在内核重启后,内核会恢复部署。

  • 更新了 Greengrass 安装程序,使其在您指定将软件设置为系统服务时遵守 --start 参数。

  • 更新了 SubscribeToComponentUpdates 的行为,以在内核更新组件的事件中设置部署 ID。

  • 其他小型修复和改进。

2.6.0

新特征
  • 当您订阅本地发布/订阅主题时,添加对MQTT通配符的支持。有关更多信息,请参阅发布/订阅本地消息SubscribeToTopic

  • 添加了对于组件配置中的配方变量(component_dependency_name:configuration:json_pointer 配方变量除外)的支持。在配方中定义组件的 DefaultConfiguration 或在部署中配置组件时,您可以使用这些配方变量。要启用此功能,请将interpolateComponentConfiguration配置选项设置为true。有关更多信息,请参阅配方变量在合并更新中使用配方变量

  • 在进程间通信 (IPC) 授权*策略中添加对通配符的完全支持。现在,您可以在资源字符串中指定 * 字符以匹配任意字符组合。有关更多信息,请参阅 授权策略中的通配符

  • 添加了对自定义组件的支持,以调用 Greengrass CLI 使用的IPC操作。您可以使用这些IPC操作来管理本地部署、查看组件详细信息以及生成用于登录本地调试控制台的密码。有关更多信息,请参阅 IPC:管理本地部署和组件

错误修复和改进
  • 修复了以下问题:在某些情况下,当依赖组件的硬依赖关系重启或状态改变时,依赖组件没有反应。

  • 改进了部署失败时核心设备向 AWS IoT Greengrass 云服务报告的错误消息。

  • 修复了以下问题:当内核重启时,Greengrass Nucleus 在某些情况下两次应用事物部署。

  • 其他小型修复和改进。有关更多信息,请参阅上的版本 GitHub。

2.5.6

新特征
  • 增加了对使用ECC密钥的硬件安全模块的支持。您可以使用硬件安全模块 (HSM) 来安全存储设备的私钥和证书。有关更多信息,请参阅 硬件安全性集成

错误修复和改进
  • 修复了在某些情况下部署安装脚本损坏的组件时,部署永不完成的问题。

  • 改进了启动期间的性能。

  • 其他小型修复和改进。

2.5.5

新特征
  • 为组件添加 GG_ROOT_CA_PATH 环境变量,以便您可以在自定义组件中访问根证书颁发机构(CA)证书。

错误修复和改进
  • 添加对使用非英语语言显示的 Windows 设备的支持。

  • 更新了 Greengrass Nucleus 解析布尔安装程序参数的方式,以便您可以通过指定不带布尔值的布尔参数来指定 true 值。例如,您现在可以指定 --provision(而不是 --provision true)来通过自动资源预置进行安装。

  • 修复了在某些情况下核心设备在配置后未向 AWS IoT Greengrass 云服务报告其状态的问题。

  • 其他小型修复和改进。

2.5.4

错误修复和改进
  • 常规错误修复和性能改进。

2.5.3

新特征
  • 添加了对硬件安全集成的支持。您可以使用硬件安全模块 (HSM) 来安全存储设备的私钥和证书。有关更多信息,请参阅 硬件安全性集成

错误修复和改进
  • 修复了在 nucleus 与之建立MQTT连接时出现运行时异常的问题。 AWS IoT Core

2.5.2

错误修复和改进
  • 修复了以下问题:Greengrass Nucleus 更新后,Windows 服务在停止或重启设备后无法再次启动。

2.5.1

警告

此版本不再可用。此版本的改进将在此组件的更高版本中提供。

错误修复和改进
  • 在 Windows 上添加对 32 位版本的 Java 运行时环境 (JRE) 的支持。

  • 更改其 AWS IoT 策略未授予 greengrass:ListThingGroupsForCoreDevice 权限的核心设备的事物组删除行为。在此版本中,部署会继续进行,但会记录警告,并且在从事物组中删除核心设备时不会删除组件。有关更多信息,请参阅 将 AWS IoT Greengrass 组件部署至设备

  • 修复了 Greengrass Nucleus向 Greengrass 组件进程提供的系统环境变量的问题。现在,您可以重新启动组件,使其使用最新的系统环境变量。

2.5.0

新特征
  • 添加了对运行 Windows 的核心设备的支持。

  • 更改了删除事物组的行为。使用此版本,您可以从事物组中删除核心设备,以便在下次部署中卸载该事物组的组件。

    由于此更改,核心设备的 AWS IoT 策略必须具有greengrass:ListThingGroupsForCoreDevice权限。如果您使用AWS IoT Greengrass 核心软件安装程序来配置资源,则默认 AWS IoT 策略允许greengrass:*,其中包括此权限。有关更多信息,请参阅 AWS IoT Greengrass 的设备身份验证和授权

  • 添加对HTTPS代理配置的支持。有关更多信息,请参阅 通过端口 443 或网络代理进行连接

  • 添加了新的 windowsUser 配置参数。您可以使用此参数指定用于在 Windows 核心设备上运行组件的默认用户。有关更多信息,请参阅 配置运行组件的用户

  • 添加了新的httpClient配置选项,您可以使用这些选项来自定义HTTP请求超时时间,从而提高慢速网络的性能。有关更多信息,请参阅httpClient配置参数。

错误修复和改进
  • 修复了从组件重启核心设备的引导生命周期选项。

  • 在配方变量中添加对连字符的支持。

  • 修复了按需 Lambda 函数组件的IPC授权。

  • 改进了日志消息,并将非关键日志从 INFO 更改为 DEBUG 级别,以便使日志更有用。

  • 移除 Greengrass nucleus 在安装 AWS IoT Greengrass 具有自动配置功能的 Core 软件时创建的默认令牌交换角色iot:DescribeCertificate权限。Greengrass Nucleus不使用此权限。

  • 修复了一个问题,使自动预置脚本不需要 iam:GetPolicy 权限(如果 iam:CreatePolicy 适用于同一策略)。

  • 其他小型修复和改进。

2.4.0

新特征
错误修复和改进
  • 启动时更新日志记录配置。这次修复了启动时未应用日志配置的问题。

  • 更新了内核加载程序符号链接,使其在安装过程中指向 Greengrass 根文件夹中的组件存储。此更新使您能够删除在安装 C AWS IoT Greengrass ore 软件时下载JAR的文件和其他 Nucleus 工件。

  • 其他小型修复和改进。有关更多信息,请参阅上的版本 GitHub。

2.3.0

新特征
  • 添加了 iot:thingName 配方变量。你可以使用这个配方变量来获取配方中 AWS IoT 核心设备的名称。有关更多信息,请参阅 配方变量

错误修复和改进
  • 其他小型修复和改进。有关更多信息,请参阅上的版本 GitHub。

2.2.0

新特征
  • 为本地影子管理添加IPC操作。

错误修复和改进
  • 减小JAR文件的大小。

  • 减少内存使用量。

  • 修复了在某些情况下日志配置未更新的问题。

  • 其他小型修复和改进。有关更多信息,请参阅上的版本 GitHub。

2.1.0

新特征
  • 支持从亚马逊ECR的私有存储库下载 Docker 镜像。

  • 添加以下参数以自定义核心设备上的MQTT配置:

    • maxInFlightPublishes— 可以同时传输的未确认MQTT的 QoS 1 消息的最大数量。

    • maxPublishRetry – 消息发布失败的最大重试次数。

  • 添加了 fleetstatusservice 配置参数,以配置核心设备向 AWS Cloud发布设备状态的时间间隔。

  • 其他小型修复和改进。有关更多信息,请参阅上的版本 GitHub。

错误修复和改进
  • 修复了内核重启时导致影子部署重复的问题。

  • 修复了在遇到服务加载异常时导致内核崩溃的问题。

  • 改进了组件依赖关系解决方案,使包含循环依赖关系的部署失败。

  • 修复了以下问题:在插件组件之前已从核心设备中删除时无法重新部署该组件。

  • 修复了导致 Lambda 组件或以根用户身份运行的组件的 HOME 环境变量设置为 /greengrass/v2/work 目录的问题。现在,HOME 变量已正确设置为运行该组件的用户的主目录。

  • 其他小型修复和改进。有关更多信息,请参阅上的版本 GitHub。

2.0.5

错误修复和改进
  • 下载 AWS提供的组件时,通过配置的网络代理正确路由流量。

  • 在 AWS 中国区域使用正确的 Greengrass 数据面板端点。

2.0.4

新特征
  • 启用通过端口 443 的HTTPS流量。您可以使用 nucleus 组件版本 2.0.4 的新greengrassDataPlanePort配置参数将HTTPS通信配置为通过端口 443 而不是默认端口 8443 传输。有关更多信息,请参阅 HTTPS通过端口 443 进行配置

  • 添加了工作路径配方变量。您可以使用此配方变量来获取组件的工作文件夹路径,您可以使用该路径在组件及其依赖关系之间共享文件。有关更多信息,请参阅工作路径配方变量

错误修复和改进
  • 如果角色策略已经存在,则阻止创建令牌交换 AWS Identity and Access Management (IAM) 角色策略。

    由于此更改,安装程序现在与 --provision true 一起运行时需要 iam:GetPolicysts:GetCallerIdentity。有关更多信息,请参阅 安装程序配置资源的最低 IAM 策略

  • 正确处理尚未成功注册的部署的取消。

  • 更新配置以在回滚部署时删除带有较新时间戳的较早条目。

  • 其他小型修复和改进。有关更多信息,请参阅上的版本 GitHub。

2.0.3

初始版本。