

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

# Greengrass Nucleus
<a name="greengrass-nucleus-component"></a>

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

**注意**  
从 Greengrass 2.14.0 版本开始，内存占用优化版核心设备运行时可用于受限的边缘设备。请参阅 [Greengrass Nucleus Lite](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)，了解有关其配置和使用的更多信息。

**重要**  
当 nucleus 组件的版本发生变化时，或者当您更改某些配置参数时， AWS IoT Greengrass Core 软件（包括设备上的核心和所有其他组件）将重新启动以应用更改。  
<a name="component-patch-update"></a>部署组件时， AWS IoT Greengrass 安装该组件所有依赖项的最新支持版本。因此，如果您将新设备添加到事物组或更新针对这些设备的部署，则 AWS提供的公共组件的新补丁版本可能会自动部署到您的核心设备。某些自动更新（例如 Nucleus 更新）可能会导致您的设备意外重启。  
<a name="component-version-pinning"></a>为防止设备上运行的组件出现意外更新，我们建议您在[创建部署](create-deployments.md)时直接包含您对该组件的首选版本。有关 C AWS IoT Greengrass ore 软件更新行为的更多信息，请参阅[更新 AWS IoT Greengrass 核心软件 (OTA)](update-greengrass-core-v2.md)。

**Topics**
+ [版本](#greengrass-nucleus-component-versions)
+ [设备要求](#greengrass-v2-requirements)
+ [支持的平台](#greengrass-v2-supported-platforms)
+ [操作系统](#greengrass-nucleus-component-os-support)
+ [要求](#greengrass-nucleus-component-requirements)
+ [依赖项](#greengrass-nucleus-component-dependencies)
+ [下载并安装](#greengrass-nucleus-component-install)
+ [配置](#greengrass-nucleus-component-configuration)
+ [本地日志文件](#greengrass-nucleus-component-log-file)
+ [更改日志](#greengrass-nucleus-component-changelog)

## 版本
<a name="greengrass-nucleus-component-versions"></a>

此组件具有以下版本：
+ 2.18.x
+ 2.17.x
+ 2.16.x
+ 2.15.x
+ 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

## 设备要求
<a name="greengrass-v2-requirements"></a>

**注意**  
您可以使用 AWS IoT Device Tester AWS IoT Greengrass 来验证您的设备是否可以运行 AWS IoT Greengrass Core 软件并与... 通信 AWS 云。有关更多信息，请参阅 [使用 AWS IoT Device Tester 适合 AWS IoT Greengrass V2](device-tester-for-greengrass-ug.md)。

------
#### [ Linux ]
+ <a name="requirement-supported-region"></a>使用支撑[AWS 区域](https://en.wikipedia.org/wiki/Amazon_Web_Services#Availability_and_topology)的 AWS IoT Greengrass V2。有关支持的区域列表，请参见 *AWS 一般参考* 中的 [AWS IoT Greengrass V2 端点和配额](https://docs.aws.amazon.com/general/latest/gr/greengrassv2.html)。
+ 至少 256 MB 的可用磁盘空间可供 AWS IoT Greengrass 酷睿软件使用。此要求不包括部署到核心设备的组件。
+ 至少分配给 AWS IoT Greengrass 酷睿软件的 96 MB 内存。此要求不包括核心设备上运行的组件。有关更多信息，请参阅 [使用 JVM 选项控制内存分配](configure-greengrass-core-v2.md#jvm-tuning)。
+ Java 运行时环境（JRE）版本 8 或更高版本。Java 必须在设备的 [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) 环境变量中可用。要使用 Java 开发自定义组件，您必须安装 Java 开发工具包 (JDK)。我们建议您使用 [Amazon Corretto](https://aws.amazon.com/corretto/) 或 [OpenJDK](https://openjdk.java.net/) 长期支持版本。需要版本 8 或更高版本。
+ [GNU C 库](https://www.gnu.org/software/libc/)（glibc）版本 2.25 或更高版本。
+ 您可以以 root 用户身份运行 AWS IoT Greengrass Core 软件。例如，使用 `sudo`。您也可以以非 root 用户身份运行 AWS IoT Greengrass Core 软件。有关更多信息，请参阅 [设置 AWS IoT Greengrass V2 核心设备作为非 root](setup-greengrass-non-root.md)。
+ 运行 AWS IoT Greengrass Core 软件的根用户（例如`root`）必须有权`sudo`与任何用户和任何群组一起运行。`/etc/sudoers` 文件必须授予该用户以其他组身份运行 `sudo` 的权限。用户权限在 `/etc/sudoers` 中应如以下示例所示。

  ```
  root    ALL=(ALL:ALL) ALL
  ```
+ 核心设备必须能够对一组端点和端口执行出站请求。有关更多信息，请参阅 [允许设备流量通过代理或防火墙](allow-device-traffic.md)。
+ 必须使用 `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 软件设置为系统服务。
  + （可选）`useradd`、`groupadd` 和 `usermod`。这些命令用于设置 `ggc_user` 系统用户和 `ggc_group` 系统组。
  + （可选）`mkfifo`。此命令用于将 Lambda 函数作为组件运行。
+ 要为组件进程配置系统资源限制，您的设备必须运行 Linux 内核版本 2.6.24 或更高版本。
+ 要运行 Lambda 函数，您的设备必须满足更多要求。有关更多信息，请参阅 [Lambda 函数要求](setting-up.md#greengrass-v2-lambda-requirements)。

**重要**  
在 Ubuntu 25.10 及更高版本上，默认`sudo`实现不支持`-E`（保留环境）标志。如果没有这个标志，系统就不会将环境变量转发给以其他系统用户身份运行的组件。结果，这些组件无法启动。  
要解决此问题，请切换到经典`sudo`实现 (`sudo.ws`)。必须进行此更改，因为 AWS IoT Greengrass 使用该`-E`标志将环境变量传递给组件进程。  

```
sudo update-alternatives --set sudo /usr/bin/sudo.ws
```

------
#### [ Windows ]
+ <a name="requirement-supported-region"></a>使用支撑[AWS 区域](https://en.wikipedia.org/wiki/Amazon_Web_Services#Availability_and_topology)的 AWS IoT Greengrass V2。有关支持的区域列表，请参见 *AWS 一般参考* 中的 [AWS IoT Greengrass V2 端点和配额](https://docs.aws.amazon.com/general/latest/gr/greengrassv2.html)。
+ 至少 256 MB 的可用磁盘空间可供 AWS IoT Greengrass 酷睿软件使用。此要求不包括部署到核心设备的组件。
+ 至少分配给 AWS IoT Greengrass 酷睿软件的 160 MB 内存。此要求不包括核心设备上运行的组件。有关更多信息，请参阅 [使用 JVM 选项控制内存分配](configure-greengrass-core-v2.md#jvm-tuning)。
+ Java 运行时环境（JRE）版本 8 或更高版本。Java 必须在设备的 [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) 系统变量中可用。要使用 Java 开发自定义组件，您必须安装 Java 开发工具包 (JDK)。我们建议您使用 [Amazon Corretto](https://aws.amazon.com/corretto/) 或 [OpenJDK](https://openjdk.java.net/) 长期支持版本。需要版本 8 或更高版本。
**注意**  
要使用 [Greengrass Nucleus](#greengrass-nucleus-component) 版本 2.5.0，您必须使用 64 位版本的 Java 运行时环境（JRE）。Greengrass Nucleus 版本 2.5.1 支持 32 位和 64 位 JRE。
+ 安装 AWS IoT Greengrass Core 软件的用户必须是管理员。
+ 必须将 AWS IoT Greengrass Core 软件作为系统服务进行安装。安装软件时指定 `--setup-system-service true`。
+ 每个运行组件进程的用户都必须存在于 LocalSystem 账户中，并且用户名和密码必须位于该 LocalSystem 账户的凭据管理器实例中。当你按照说明[安装 AWS IoT Greengrass Core 软件时，你可以设置这个用户](install-greengrass-core-v2.md)。
+ 核心设备必须能够对一组端点和端口执行出站请求。有关更多信息，请参阅 [允许设备流量通过代理或防火墙](allow-device-traffic.md)。

------

## 支持的平台
<a name="greengrass-v2-supported-platforms"></a>

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 Server 2025

**注意**  
Windows 设备目前不支持某些 AWS IoT Greengrass 功能。有关更多信息，请参阅[Greengrass 功能兼容性](operating-system-feature-support-matrix.md)和[功能注意事项](#greengrass-v2-windows-feature-considerations)。

------

### 功能注意事项
<a name="greengrass-v2-windows-feature-considerations"></a>

Windows 设备目前不支持某些 AWS IoT Greengrass 功能。查看功能差异以确认 Windows 设备是否满足您的要求。有关更多信息，请参阅 [Greengrass 功能兼容性](operating-system-feature-support-matrix.md)。

要构建自定义 Linux-based 操作系统，可以在[`meta-aws`项目 AWS IoT Greengrass 中使用 BitBake 配方](https://github.com/aws/meta-aws/tree/master/recipes-iot)。该`meta-aws`项目提供的配方可用于在使用 Yocto Project 构建框架构建的[嵌入式 Linux ](https://elinux.org/) 系统中构建 AWS 边缘软件功能。[ OpenEmbedded ](https://www.openembedded.org/wiki/Main_Page)[Yocto 项目](https://www.yoctoproject.org/)是一个开源协作项目，无论硬件架构如何，都可以帮助您为嵌入式应用程序构建自定义 Linux-based 系统。在您的设备上 AWS IoT Greengrass 安装、配置和自动运行 AWS IoT Greengrass Core 软件的 BitBake 秘诀。

Linux 平台也可以 AWS IoT Greengrass 在 Docker 容器中运行。有关更多信息，请参阅 [在 Docker 容器中运行 AWS IoT Greengrass 核心软件](run-greengrass-docker.md)。

## 操作系统
<a name="greengrass-nucleus-component-os-support"></a>

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

有关更多信息，请参阅 [支持的平台](#greengrass-v2-supported-platforms)。

## 要求
<a name="greengrass-nucleus-component-requirements"></a>

设备必须满足某些要求才能安装和运行 Greengrass AWS IoT Greengrass 核心和酷睿软件。有关更多信息，请参阅 [设备要求](#greengrass-v2-requirements)。

支持 Greengrass Nucleus 组件在 VPC 中运行。要在 VPC 中部署此组件，需要满足以下条件。
+ Greengrass 核心组件必须连接到 AWS IoT data、 AWS IoT 凭证和亚马逊 S3。

## 依赖项
<a name="greengrass-nucleus-component-dependencies"></a>

Greengrass Nucleus 不包含任何组件依赖关系。但是，一些 AWS提供的组件将内核作为依赖关系包含在内。有关更多信息，请参阅 [AWS提供的组件](public-components.md)。

有关组件依赖关系的更多信息，请参阅[组件配方参考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## 下载并安装
<a name="greengrass-nucleus-component-install"></a>

您可以下载安装程序，在您的设备上安装 Greengrass Nucleus 组件。此安装程序将您的设备设置为 Greengrass 核心设备。您可以执行两种类型的安装：一种是为您创建所需 AWS 资源的快速安装，另一种是您自己创建 AWS 资源的手动安装。有关更多信息，请参阅 [安装 AWS IoT Greengrass Core 软件](install-greengrass-core-v2.md)。

您也可以按照教程安装 Greengrass Nucleus 并探索 Greengrass 组件开发。有关更多信息，请参阅 [教程：入门 AWS IoT Greengrass V2](getting-started.md)。

## 配置
<a name="greengrass-nucleus-component-configuration"></a>

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

`iotRoleAlias`  
<a name="nucleus-component-configuration-iot-role-alias"></a>指向代币交换 IAM 角色的 AWS IoT 角色别名。 AWS IoT 凭证提供商承担此角色是为了允许 Greengrass 核心设备与 AWS 服务进行交互。有关更多信息，请参阅 [授权核心设备与 AWS 服务交互](device-service-role.md)。  
当您使用该`--provision true`选项运行 AWS IoT Greengrass Core 软件时，该软件会预置角色别名并在核心组件中设置其值。

  `interpolateComponentConfiguration`   
（可选）您可以启用 Greengrass Nucleus，以便在组件配置中插入[组件配方变量](component-recipe-reference.md#recipe-variables)并[合并配置更新](update-component-configurations.md#merge-configuration-update-recipe-variables)。我们建议您将此选项设置为 `true`，以便核心设备可以运行在其配置中使用配方变量的 Greengrass 组件。  
此组件的 v2.6.0 及更高版本中提供了此功能。  
默认值：`false`

`networkProxy`  
（可选）用于所有连接的网络代理。有关更多信息，请参阅 [通过端口 443 或网络代理进行连接](configure-greengrass-core-v2.md#configure-alpn-network-proxy)。  
<a name="nucleus-component-parameter-restart-para"></a>当您部署对此配置参数的更改时， AWS IoT Greengrass Core 软件将重新启动以使更改生效。
该对象包含以下信息：    
`noProxyAddresses`  
（可选）不使用代理的 IP 地址或主机名的逗号分隔列表。  
`proxy`  
要连接的代理。该对象包含以下信息：    
`url`  
代理服务器的 URL，格式为 `scheme://userinfo@host:port`。  <a name="nucleus-component-configuration-proxy-url-segments"></a>
+ `scheme` – 方案，必须是 `http` 或 `https`。
**重要**  
<a name="https-proxy-greengrass-nucleus-requirement"></a>Greengrass 核心设备必须运行 [Greengrass Nucleus](#greengrass-nucleus-component) v2.5.0 或更高版本才能使用 HTTPS 代理。  
如果您配置 HTTPS 代理，则必须将代理服务器 CA 证书添加到核心设备的 Amazon 根 CA 证书中。有关更多信息，请参阅 [使核心设备信任 HTTPS 代理](configure-greengrass-core-v2.md#https-proxy-certificate-trust)。
+ `userinfo` –（可选）用户名和密码信息。如果您在 `url` 中指定此信息，则 Greengrass 核心设备将忽略 `username` 和 `password` 字段。
+ `host` – 代理服务器的主机名或 IP 地址。
+ `port` –（可选）端口号。如果您未指定端口，则 Greengrass 核心设备将使用以下默认值：
  + `http` – 80
  + `https` – 443  
`username`  
（可选）代理服务器进行身份验证时使用的用户名。  
`password`  
（可选）用于对代理服务器进行身份验证的密码。

`mqtt`  
（可选）Greengrass 核心设备的 MQTT 配置。有关更多信息，请参阅 [通过端口 443 或网络代理进行连接](configure-greengrass-core-v2.md#configure-alpn-network-proxy)。  
<a name="nucleus-component-parameter-restart-para"></a>当您部署对此配置参数的更改时， AWS IoT Greengrass Core 软件将重新启动以使更改生效。
该对象包含以下信息：    
`port`  
（可选）用于 MQTT 连接的端口。  
默认值：`8883`  
`keepAliveTimeoutMs`  
（可选）客户端为保持 MQTT 连接处于活动状态而发送的每条 `PING` 消息之间的时间（以毫秒为单位）。此值必须大于 `pingTimeoutMs`。  
默认值：`60000`（60 秒）。  
`pingTimeoutMs`  
（可选）客户端等待从服务器接收 `PINGACK` 消息的时间（以毫秒为单位）。如果等待时间超过了超时时间，则核心设备将关闭并重新打开 MQTT 连接。此值必须小于 `keepAliveTimeoutMs`。  
默认值：`30000`（30 秒）  
`operationTimeoutMs`  
（可选）客户端等待 MQTT 操作（例如 `CONNECT` 或 `PUBLISH`）完成的时间（以毫秒为单位）。此选项不适用于 MQTT `PING` 或保持活动状态的消息。  
默认值：`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`  
`standaloneMqttTimeoutMs`  
（可选）在 IoT 连接交换机操作期间，核心等待独立 MQTT 连接的时间，以毫秒为单位。此超时包括飞行前的连接检查以及成功切换后核心发送给源账户的状态报告。  
此功能需要此组件的 v2.18.0 或更高版本。  
默认值：`60000`（60 秒）。  
有效范围：最小值为 1  
`spooler`  
（可选）Greengrass 核心设备的 MQTT 后台处理程序配置。该对象包含以下信息：    
`storageType`  
用于存储消息的存储类型。如果将 `storageType` 设置为 `Disk`，则可以配置 `pluginName`。您可指定 `Memory` 或 `Disk`。  
此功能适用于 [Greengrass Nucleus 组件](#greengrass-nucleus-component)的 v2.11.0 及更高版本。  
如果将 MQTT 后台处理程序 `storageType` 设置为 `Disk`，并且您想将 Greengrass Nucleus从 2.11.x 版本降级到早期版本，则必须将配置更改回到 `Memory`。Greengrass Nucleus版本 2.10.x 及更早版本支持的 `storageType` 的唯一配置是 `Memory`。不遵循此指南可能会导致后台处理程序中断。这将导致您的 Greengrass 核心设备无法向 AWS 云发送 MQTT 消息。
默认值：`Memory`  
`pluginName`  
（可选）插件组件名称。仅当 `storageType` 设置为 `Disk` 时，才会使用此组件。此选项默认为`aws.greengrass.DiskSpooler`并将使用 Greengrass-provided [磁盘后台处理程序](disk-spooler-component.md)。  
此功能适用于 [Greengrass Nucleus 组件](#greengrass-nucleus-component)的 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 的版本。您可指定 `mqtt3` 或 `mqtt5`。  
此功能适用于 [Greengrass Nucleus 组件](#greengrass-nucleus-component)的 v2.10.0 及更高版本。  
默认值：`mqtt5`  
`receiveMaximum`  
（可选）代理可以发送的未确认 QoS1 数据包的最大数量。  
此功能适用于 [Greengrass Nucleus 组件](#greengrass-nucleus-component)的 v2.10.0 及更高版本。  
默认值：`100`  
`sessionExpirySeconds`  
（可选）您可以从 IoT Core 请求持续会话的时间（以秒为单位）。默认为支持的最大时间 AWS IoT Core。  
此功能适用于 [Greengrass Nucleus 组件](#greengrass-nucleus-component)的 v2.10.0 及更高版本。  
默认值：`604800 (7 days)`  
`minimumReconnectDelaySeconds`  
（可选）重新连接行为的选项。MQTT 重新连接的最短时间（以秒为单位）。  
此功能适用于 [Greengrass Nucleus 组件](#greengrass-nucleus-component)的 v2.10.0 及更高版本。  
默认值：`1`  
`maximumReconnectDelaySeconds`  
（可选）重新连接行为的选项。MQTT 重新连接的最长时间（以秒为单位）。  
此功能适用于 [Greengrass Nucleus 组件](#greengrass-nucleus-component)的 v2.10.0 及更高版本。  
默认值：`120`  
`minimumConnectedTimeBeforeRetryResetSeconds`  
（可选）重新连接行为的选项。在重试延迟重置到最小值之前，连接必须处于活动状态的时间（以秒为单位）。  
此功能适用于 [Greengrass Nucleus 组件](#greengrass-nucleus-component)的 v2.10.0 及更高版本。  
默认值：`30`

  `jvmOptions`  
（可选）用于运行 AWS IoT Greengrass Core 软件的 JVM 选项。有关运行 C AWS IoT Greengrass ore 软件的推荐 JVM 选项的信息，请参见[使用 JVM 选项控制内存分配](configure-greengrass-core-v2.md#jvm-tuning)。  
<a name="nucleus-component-parameter-restart-para"></a>当您部署对此配置参数的更改时， AWS IoT Greengrass Core 软件将重新启动以使更改生效。

`iotDataEndpoint`  
<a name="nucleus-component-configuration-iot-data-endpoint"></a>您的 AWS IoT 数据终端节点 AWS 账户。  
<a name="nucleus-component-set-iot-endpoints"></a>当您使用该`--provision true`选项运行 AWS IoT Greengrass 核心软件时，该软件会从 AWS IoT 中获取您的数据和凭证端点，并将其设置在 nucleus 组件中。

`iotCredEndpoint`  
<a name="nucleus-component-configuration-iot-cred-endpoint"></a>您的 AWS IoT 凭证终端节点 AWS 账户。  
<a name="nucleus-component-set-iot-endpoints"></a>当您使用该`--provision true`选项运行 AWS IoT Greengrass 核心软件时，该软件会从 AWS IoT 中获取您的数据和凭证端点，并将其设置在 nucleus 组件中。

`greengrassDataPlaneEndpoint`  
此组件的 v2.7.0 及更高版本中提供了此功能。  
（可选）要使用的格林格拉斯数据平面端点。设置**iotdata**为使用与中指定的 IoT 数据端点相同的终端节点`iotDataEndpoint`。  
**iotdata**在以下情况下，必须将此选项设置为：  
+ 您使用由私有证书颁发机构 (CA) 签名的设备证书。有关更多信息，请参阅 [使用由私有 CA 签名的设备证书](configure-greengrass-core-v2.md#configure-nucleus-private-ca)。
+ 您可以部署核心配置更新，将设备的物联网连接切换到其他 AWS 账户 或区域。如果没有此设置，则在连接切换后，数据平面将保持与原始帐户的绑定。这会中断组件工件下载和控制平面操作。有关更多信息，请参阅 [将 Greengrass 核心设备切换到另一台核心设备 AWS 账户 或区域](switch-core-device-connectivity.md)。
您可以在部署或安装期间使用 **--init-config** [ 安装程序参数](configure-installer.md)设置此选项。  
默认：`""`（空字符串 — 使用 Greengrass 服务端点）

`greengrassDataPlanePort`  
此组件的 v2.0.4 及更高版本中提供了此功能。  
（可选）用于数据面板连接的端口。有关更多信息，请参阅 [通过端口 443 或网络代理进行连接](configure-greengrass-core-v2.md#configure-alpn-network-proxy)。  
您必须指定设备可以进行出站连接的端口。如果您指定了被封锁的端口，则设备将无法连接 AWS IoT Greengrass 以接收部署。
从以下选项中进行选择：  
+ `443`
+ `8443`
默认值：`8443`

`awsRegion`  
 AWS 区域 要使用的。

`runWithDefault`  
用于运行组件的系统用户。  
<a name="nucleus-component-parameter-restart-para"></a>当您部署对此配置参数的更改时， AWS IoT Greengrass Core 软件将重新启动以使更改生效。
该对象包含以下信息：    
`posixUser`  
核心设备用于运行通用组件和 Lambda 组件的系统用户名称或 ID，以及系统组（可选）。使用以下格式指定由半角冒号（`:`）分隔的用户和组：`user:group`。组是可选的。如果您未指定群组， AWS IoT Greengrass Core 软件将使用用户的主群组。举例来说，可以指定 `ggc_user` 或 `ggc_user:ggc_group`。有关更多信息，请参阅 [配置运行组件的用户](configure-greengrass-core-v2.md#configure-component-user)。  
当您运行带有`--component-default-user {{ggc_user}}:{{ggc_group}}`选项的 AWS IoT Greengrass Core 软件安装程序时，软件会在 nucleus 组件中设置此参数。  
`windowsUser`  
此组件的 v2.5.0 及更高版本中提供了此功能。  
用于在 Windows 核心设备上运行此组件的 Windows 用户名称。用户必须存在于每台 Windows 核心设备上，其名称和密码必须存储在该 LocalSystem 账户的凭据管理器实例中。有关更多信息，请参阅 [配置运行组件的用户](configure-greengrass-core-v2.md#configure-component-user)。  
当您运行带有`--component-default-user {{ggc_user}}`选项的 AWS IoT Greengrass Core 软件安装程序时，软件会在 nucleus 组件中设置此参数。  
`systemResourceLimits`  
此组件的 v2.4.0 及更高版本中提供了此功能。 AWS IoT Greengrass 目前不支持在 Windows 核心设备上使用此功能。  
默认情况下适用于通用和非容器化 Lambda 组件进程的系统资源限制。您可在创建部署时覆盖单个组件的系统资源限制。有关更多信息，请参阅 [配置组件的系统资源限制](configure-greengrass-core-v2.md#configure-component-system-resource-limits)。  
该对象包含以下信息：    
`cpus`  
 <a name="system-resource-limits-cpu-definition-each"></a>每个组件进程可在核心设备上使用的最大 CPU 时间。核心设备的总 CPU 时间等于 CPU 核心的设备数量。例如，在一台有 4 个 CPU 核心的核心设备上，您可以将此值设置为 `2`，以便将每个组件进程限制为使用每个 CPU 核心的 50%。在一台有 1 个 CPU 核心的设备上，您可以将此值设置为 `0.25`，以便将组件进程限制为使用 CPU 的 25%。如果您将此值设置为大于 CPU 内核数量的数字，则 AWS IoT Greengrass 酷睿软件不会限制组件的 CPU 使用量。  
`memory`  
 <a name="system-resource-limits-memory-definition-each"></a>每个组件进程可在核心设备上使用的最大 RAM 数量（以千字节表示）。

 `s3EndpointType`   
（可选）S3 端点类型。此参数仅对美国东部（弗吉尼亚州北部）（`us-east-1`）地区生效。从任何其他地区设置此参数将被忽略。从以下选项中进行选择：  
+ `REGIONAL` – S3 客户端和预签名 URL 使用区域端点。
+ `GLOBAL` – S3 客户端和预签名 URL 使用传统端点。
+ `DUALSTACK`— S3 预签名的 URL 使用双堆栈端点。
默认值：`GLOBAL`

 `fipsMode`   
（可选）让 Greengrass 使用 FIPS 端点。有关如何启用 FIPS 端点的更多信息，请参阅 [FIPS](FIPS.html) 端点。  
从以下选项中进行选择：  
+ `true` 设置为 true 时，端点将使用 FIPS 端点。
+ `false` 设置为 false 时，端点不使用 FIPS 端点。
默认值：`false`

`logging`  
（可选）核心设备的日志记录配置。有关如何配置和使用 Greengrass 日志的更多信息，请参阅 [监控 AWS IoT Greengrass 日志](monitor-logs.md)。  
该对象包含以下信息：    
  `level`   
（可选）要输出的日志消息的最低级别。  
从以下日志级别中选择，此处按级别顺序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
默认值：`INFO`  
  `format`   
（可选）日志的数据格式。从以下选项中进行选择：  
+ `TEXT` – 如果您想以文本形式查看日志，请选择此选项。
+ `JSON` – 如果您想使用 [Greengrass CLI 日志命令](gg-cli-logs.md)查看日志或以编程方式与日志交互，请选择此选项。
默认值：`TEXT`  
`outputType`  
（可选）日志的输出类型。从以下选项中进行选择：  
+ `FILE`— AWS IoT Greengrass Core 软件将日志输出到您在中指定的目录中的文件中`outputDirectory`。
+ `CONSOLE`— AWS IoT Greengrass Core 软件将日志打印到`stdout`。选择此选项可在核心设备打印日志时查看日志。
默认值：`FILE`  
  `fileSizeKB`   
（可选）每个日志文件的最大大小（以千字节表示）。日志文件超过此最大文件大小后， AWS IoT Greengrass Core 软件会创建一个新的日志文件。  
<a name="nucleus-component-logging-parameter-file-only"></a>仅当为 `outputType` 指定 `FILE` 时，此参数才适用。  
默认值：`1024`  
  `totalLogsSizeKB`   
（可选）每个组件（包括 Greengrass Nucleus）的最大日志文件总大小（以千字节表示）。Greengrass Nucleus的日志文件还包括来自[插件组件](develop-greengrass-components.md#component-types)的日志。在组件的日志文件总大小超过此最大大小后， AWS IoT Greengrass Core 软件会删除该组件最旧的日志文件。  
此参数等同于[日志管理器组件的](log-manager-component.md)[磁盘空间限制](log-manager-component.md#log-manager-component-configuration)参数（`diskSpaceLimit`），您可为 Greengrass Nucleus（系统）和每个组件指定该参数。 AWS IoT Greengrass Core 软件使用两个值中的最小值作为 Greengrass 核和每个组件的最大总日志大小。  
<a name="nucleus-component-logging-parameter-file-only"></a>仅当为 `outputType` 指定 `FILE` 时，此参数才适用。  
默认值：`10240`  
  `outputDirectory`   
（可选）日志文件的输出目录。  
<a name="nucleus-component-logging-parameter-file-only"></a>仅当为 `outputType` 指定 `FILE` 时，此参数才适用。  
默认值：`{{/greengrass/v2}}/logs`，其中 `{{/greengrass/v2}}` 是 AWS IoT Greengrass 根文件夹。

  `fleetstatus`   
此组件的 v2.1.0 及更高版本中提供了此参数。  
（可选）核心设备的实例集状态配置。  
该对象包含以下信息：    
`periodicStatusPublishIntervalSeconds`  
（可选）核心设备向 AWS 云发布设备状态的间隔时间（以秒为单位）。  
最小值：`86400`（24 小时）  
默认值：`86400`（24 小时）

  `telemetry`   
（可选）核心设备的系统运行状况遥测配置。有关遥测指标以及如何处理遥测数据的更多信息，请参阅 [从 AWS IoT Greengrass 核心设备收集系统运行状况遥测数据](telemetry.md)。  
该对象包含以下信息：    
`enabled`  
（可选）您可以启用或禁用遥测。  
默认值：`true`  
`periodicAggregateMetricsIntervalSeconds`  
（可选）核心设备汇总指标的时间间隔（以秒为单位）。  
如果将此值设置为低于支持的最小值，则内核将改用默认值。  
最低：`3600`  
默认值：`3600`  
`periodicPublishMetricsIntervalSeconds`  
（可选）核心设备向 AWS 云发布遥测指标的间隔时间（以秒为单位）。  
如果将此值设置为低于支持的最小值，则内核将改用默认值。  
最低：`86400`  
默认值：`86400`

`deploymentPollingFrequencySeconds`  
（可选）轮询部署通知的时间段（以秒为单位）。  
默认值：`15`

`componentStoreMaxSizeBytes`  
（可选）组件存储在磁盘上的最大大小，其中包括组件配方和构件。  
默认值：`10000000000`（10 GB）

  `bootConfigTlogCompactionThresholdBytes`   
此参数在此组件的 v2.18.3 及更高版本中可用。  
（可选）以字节为单位的大小阈值，核心设备启动时 Greengrass 核压缩其配置事务日志 (`config.tlog`) 时达到该阈值。  
压缩不会更改您的配置。它仅从日志中删除过时的条目，从而减少了核心设备的启动时间和磁盘使用量。  
要禁用启动时间压缩，请将此值设置为`0`或负值。  
将阈值指定为字节数，例如`10000000`。原子核也接受科学记数法，例如`1e7`。如果您设置的值不是数字，例如`20MB`，nucleus 将使用默认值并在其日志中记录警告。无效值不会关闭压缩。  
压缩不会阻止您的设备启动。如果核无法压缩日志，则核心设备将以未压缩的日志正常启动，并将错误记录在其日志中。下次核心设备启动时，核会再试一次。
默认值：`10000000`(10 MB)

  `platformOverride`   
（可选）标识核心设备平台的属性字典。使用它来定义自定义平台属性，组件配方可以使用这些属性来识别组件的正确生命周期和构件。例如，您可以定义硬件功能属性，以便仅部署组件运行所需的最小构件集。有关更多信息，请参阅组件配方中的[清单平台参数](component-recipe-reference.md#component-platform-definition)。  
您也可以使用此参数来覆盖核心设备的 `os` 和 `architecture` 平台属性。

  `httpClient`   
此组件的 v2.5.0 及更高版本中提供了此参数。  
（可选）核心设备的 HTTP 客户端配置。这些配置选项适用于该组件发出的所有 HTTP 请求。如果核心设备在速度较慢的网络上运行，则可以增加这些超时持续时间以防止 HTTP 请求超时。  
该对象包含以下信息：    
`connectionTimeoutMs`  
（可选）连接请求超时之前等待连接打开的时间（以毫秒为单位）。  
默认值：`2000`（2 秒）  
`socketTimeoutMs`  
（可选）连接超时之前等待通过打开的连接传输数据的时间（以毫秒为单位）。  
默认值：`30000`（30 秒）

  `deploymentConfigurationTimeSource`   
此参数在此组件的 v2.15.0 及更高版本中可用。  
（可选）处理部署时使用的时间戳。默认值为 `deploymentCreationTime`。  
此对象包含以下值：    
`deploymentCreationTime`  
默认值为 `deploymentConfigurationTimeSource`。设备使用部署创建时间戳来解决处理期间的配置密钥冲突问题。选择此行为后，由 Nucleus 保持的本地设备配置可能具有比传入部署更长的时间戳，因此会拒绝现在视为过时的传入配置更改。  
`deploymentProcessingTime`  
设备使用其本地时间戳来解决部署处理期间的配置密钥冲突问题。处理完毕后，设备会根据处理的时间戳而不是部署创建时间戳更新配置。该行为假设设备时钟已正确校准。  
当希望新设备在首次连接时使用此行为时，请在初始设备映像或安装中配置此 Nucleus 设置，而不是通过部署进行配置。使用 Nucleus Classic 安装程序的 [`--init-config`](https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-installer.html) 选项进行此种配置。  
这种初始配置是必不可少的，因为设备按任意顺序处理多个部署。如果初始配置不当，设备可能会在收到将 Nucleus 配置设置为 `deploymentProcessingTime` 的部署之前，使用默认 `deploymentCreationTime` 行为处理部署。

**Example 示例：配置合并更新**  

```
{
  "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"
  }
}
```

## 本地日志文件
<a name="greengrass-nucleus-component-log-file"></a>

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

------
#### [ Linux ]

```
{{/greengrass/v2}}/logs/greengrass.log
```

------
#### [ Windows ]

```
{{C:\greengrass\v2}}\logs\greengrass.log
```

------

**查看此组件的日志**
+ 在核心设备上运行以下命令可实时查看此组件的日志文件。将`{{/greengrass/v2}}`或{{C:\\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
  ```

------

## 更改日志
<a name="greengrass-nucleus-component-changelog"></a>

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


|  **版本**  |  **更改**  | 
| --- | --- | 
| 2.18.3 |  **新特征**<br />   添加`bootConfigTlogCompactionThresholdBytes`配置参数以在启动时启用配置事务日志压缩，从而回收核心设备上的磁盘空间。   <br />**错误修复和改进**<br />   修复了首次部署失败可能导致核心丢失设备组成员资格并在重启后移除已安装组件的问题。     | 
| 2.18.2 |  **错误修复和改进**<br />   修复了核心可以将未更改的配置值写入配置存储库的问题。     | 
| 2.18.1 |  **错误修复和改进**<br />   修复了短暂连接失败后核心可能无法获取凭据的问题。     | 
| 2.18.0 |  **新特征**<br />   增加了对通过核心配置部署将核心设备的 AWS IoT 连接切换到其他 AWS 账户 或区域的支持。Nucleus 会在应用更改之前验证与新端点的连接，并将终端部署状态报告给源账户。   增加了对 Windows Server 2025 的支持。   <br />**错误修复和改进**<br />   通过仅在系统时钟同步后启动 AWS IoT Greengrass Core 软件，修复了 systemd 设备上的启动计时问题。   修复了组件在进行中的订阅请求期间关闭本地 IPC 流后可能会遇到过时的订阅的问题。   常规错误修复和性能改进。     | 
| 2.17.0 |  **新特征**<br />   在自动配置期间安装所有 Amazon 根 CA 证书。   添加了卸载生命周期，该生命周期在部署移除组件时运行。   允许以常规 Linux 用户身份安装 Greengrass Core 软件。     | 
| 2.16.1 |  **错误修复和改进**<br />   添加了令牌交换服务失败后的凭证重试间隔的配置。     | 
| 2.16.0 |  **新特征**<br />   Nucleus 现在支持 cgroups V2。    **错误修复和改进**<br />   修复了取消部署时核心无法清理陈旧部署的问题。     | 
| 2.15.1 |  **错误修复和改进**<br />   修复了引导部署期间 30 秒关机超时后 nucleus 无法清理组件进程的问题。     | 
| 2.15.0 |  **新特征**<br />   添加遥测功能以包括主机系统信息，例如 CPU 与操作系统详细信息。有关更多信息，请参阅遥测组件页面。   添加 `deploymentConfigurationTimeSource` 配置。有关更多信息，请参阅 Nucleus 组件配置。    **错误修复和改进**<br />   Nucleus 现在默认优先使用本地版本和构件，从而提高部署一致性并降低外部依赖性。用户可通过在部署文档中指定替代首选项来覆盖此行为。   添加了新的警告日志，当提供的 Windows 用户与 Windows 通常接受的字符集不匹配时发出警告。     | 
| 2.14.3 | 错误修复和改进+  支持令牌交换服务在端口配置更改时重新启动。 <br />+  修复了未固定 Lambda 未触发时，实例集状态服务不会为其发送组件状态更改消息的问题。 <br />+  修复了部署新组件版本时组件无法正常关闭的问题。 <br />+  修复了内置插件注入钩子执行两次导致有额外生命周期事件和重复进行日志记录的问题。 <br />+  优化了 Windows 设备上的组件生命周期日志记录。  | 
| 2.14.2 | 错误修复和改进+  修复了 HTTP 客户端未配置双向身份验证的问题。  | 
| 2.14.1 | 错误修复和改进+  修复了在新安装的 Greengrass 上无法正常停止组件的问题。  | 
| emrfs |  此版本不再可用。此版本的改进将在此组件的更高版本中提供。  **新特征**<br />   新增的双堆栈端点支持可实现 IPv6 网络通信。   增强了对 Nucleus 重启失败和 `Launch` 目录损坏的恢复能力。   <br />**错误修复和改进**<br />   修复了 IPC PubSub 订阅关闭中的内存泄漏问题。   修复了 skipif 条件为真时因启动超时而进入错误状态的组件的运行生命周期。   修复了 TLS 策略设置为 TLS13\_1\_3\_2022\_10 时核心设备无法连接 AWS IoT Core 的问题。     | 
| 2.13.0 |  **新特征**<br />   在内核中支持 FIPS 端点。   <br />**错误修复和改进**<br />   取消部署改进：现在可以在合并新配置以及等待服务启动时取消部署。     | 
| 2.12.6 |  **错误修复和改进**<br />   修复了导致某些 ARMv8 处理器（包括 Jetson Nano）启动时崩溃的问题。     | 
| 2.12.5 |  **错误修复和改进**<br />   修复了以下问题：在回滚以前损坏的具有硬依赖关系的组件时，部署回滚偶尔会卡住。   修复了以下问题：实例集预置后内核不发布状态更新。   支持 `GetDeploymentConfiguration` API 在出现 404 错误后重试。     | 
| 2.12.4 |  **错误修复和改进**<br />   修复了以下问题：在某些 Linux 设备上启动时内核进入死锁状态。     | 
| 2.12.3 |  此版本不再可用。此版本的改进将在此组件的更高版本中提供。 错误修复和改进+  修复了以下问题：在内核重启后和组件恢复期间，内核无法报告正确的组件状态。 <br />+  常规错误修复和性能改进。  | 
| 2.12.2 |  **错误修复和改进**<br />   修复了以下问题：旧日志未正确清理。   常规错误修复和性能改进。     | 
| 2.12.1 |  **错误修复和改进**<br />   修复了以下问题：内核可能会重复对部署主题的 MQTT 订阅，从而导致额外的日志记录和 MQTT 发布。     | 
| 2.12.0 |  <a name="changelog-nucleus-2.12.0"></a>**新特征**<br />   支持您将引导生命周期步骤作为回滚部署的一部分来运行。     | 
| 2.11.3 |  <a name="changelog-nucleus-2.11.3"></a>**错误修复和改进**<br />   修复了内核中的一个问题，即当其组件的依赖关系失败时，它可能会错误地启动组件。   <br />**新特征**<br />   添加了可配置的 s3 端点类型。     | 
| 2.11.2 |  <a name="changelog-nucleus-2.11.2"></a>**错误修复和改进**<br />   修复了内核 MQTT 5 客户端中的一个问题，即在使用大量（> 50）订阅时，它可能会显示为离线。   支持在 Docker 拨号 TCP 出现故障时重试。     | 
| 2.11.1 |  <a name="changelog-nucleus-2.11.1"></a>**错误修复和改进**<br />   修复了以下问题：如果引导任务失败且部署元数据文件损坏，则内核无法启动。   修复了以下问题：部署状态更新中未报告按需 Lambda 组件。   支持重复授权策略 ID。     | 
| 2.11.0 |  <a name="changelog-nucleus-2.11.0"></a>**新特征**<br />   支持您取消本地部署。   支持您为本地部署配置故障处理策略。   添加了对磁盘后台处理程序插件的支持。     | 
| 2.10.3 |  <a name="changelog-nucleus-2.10.3"></a>**错误修复和改进**<br />   修复了以下问题：在使用 PKCS\#11 提供程序时，Greengrass 没有订阅部署通知。     | 
| 2.10.2 |  <a name="changelog-nucleus-2.10.2"></a>**错误修复和改进**<br />   允许对组件生命周期进行不区分大小写的解析。   修复了以下问题：未正确重新创建环境 PATH 变量。   对于包含特殊字符的用户名，修复了包括流管理器的组件的代理 URI 编码。     | 
| 2.10.1 |  <a name="changelog-nucleus-2.10.1"></a>**错误修复和改进**<br />   修复了可能导致某些 ARMv8 处理器（包括 Jetson Nano）启动时崩溃的问题。   Greengrass 不再关闭组件的标准入口，这会将行为恢复到 2.10.0 之前的行为     | 
| 2.10.0 |  <a name="changelog-nucleus-2.10.0"></a>**新特征**<br />   添加了对空正则表达式的 `interpolateComponentConfiguration` 支持。Greengrass 现在可从根配置对象中进行插值。   添加了对 MQTT5 的支持。   添加了无需扫描即可快速加载插件组件的机制。   支持 Greengrass 通过删除未使用的 Docker 映像来节省磁盘空间。   <br />**错误修复和改进**<br />   修复了以下问题：回滚会将部署中的某些配置值保留不变。   修复了 Greengrass 核在自定义非AWS 凭据和数据端点中验证 AWS 域序列的问题。   更新多组依赖关系解析以通过 AWS 云 协商重新解决所有组依赖关系，而不是锁定到活动版本。此更新还删除了部署错误代码 `INSTALLED_COMPONENT_NOT_FOUND`。   更新了 Greengrass Nucleus，以在本地已存在 Docker 映像时跳过下载这些映像。   更新了 Greengrass Nucleus，以在超时到期之前重启组件安装步骤。   其他小型修复和改进。     | 
| 2.9.6 |  <a name="changelog-nucleus-2.9.6"></a>**错误修复和改进**<br />   修复了以下问题：Greengrass 部署失败并显示错误 LAUNCH\_DIRECTORY\_CORRUPTED，并且随后的设备重启无法启动 Greengrass。当您在需要重启 Greengrass 才能部署的多个事物组之间移动 Greengrass 设备时，可能会发生此错误。     | 
| 2.9.5 |  <a name="changelog-nucleus-2.9.5"></a>**新特征**<br />   支持 Greengrass Nucleus软件签名验证。   <br />**错误修复和改进**<br />   修复了以下问题：当本地配方元数据区域与 Greengrass Nucleus启动区域不匹配时，部署会失败。发生这种情况时，Greengrass Nucleus现在会与云重新协商。   修复了以下问题：MQTT 消息后台处理程序填满且从不删除消息。   其他小型修复和改进。     | 
| 2.9.4 |  <a name="changelog-nucleus-2.9.4"></a>**错误修复和改进**<br />   在丢弃 QOS 0 消息之前检查是否存在空消息。   如果作业状态详细信息值超过 1024 个字符的限制，则将其截断。   更新了 Windows 的引导脚本，以正确读取 Greengrass 根路径（如果该路径包含空格）。   更新订阅内容， AWS IoT Core 这样，如果未发送订阅响应，它就会丢弃客户端消息。   确保内核在主配置文件损坏或丢失时从备份文件加载其配置。     | 
| 2.9.3 |  <a name="changelog-nucleus-2.9.3"></a>**错误修复和改进**<br />   确保 MQTT 客户端 ID 不重复。   添加了更强大的文件读取和写入功能，以避免损坏以及从损坏中恢复。   在特定的网络相关错误上重试 Docker 映像提取。   添加了有关 MQTT 连接的 `noProxyAddresses` 选项。     | 
| 2.9.2 |  <a name="changelog-nucleus-2.9.2"></a>**错误修复和改进**<br />   修复了以下问题：配置 `interpolateComponentConfiguration` 不适用于正在进行的部署。   使用 OSHI 列出所有子进程。     | 
| 2.9.1 |  <a name="changelog-nucleus-2.9.1"></a>**错误修复和改进**<br />   添加了以下修复：如果部署删除插件组件，Greengrass 会重新启动。     | 
| 2.9.0 |  <a name="changelog-nucleus-2.9.0"></a>**新特征**<br />   支持创建子部署，这些子部署可以使用较小的设备子集重试部署。此功能能以更有效的方法来测试和解决不成功的部署。   <br />**错误修复和改进**<br />   改进了对没有 `useradd`、`groupadd` 和 `usermod` 的系统的支持。   其他小型修复和改进。     | 
| 2.8.1 |  <a name="changelog-nucleus-2.8.1"></a>**错误修复和改进**<br />   修复了以下问题：Greengrass API 错误导致部署错误代码未正确生成。   修复了以下问题：在部署期间组件达到 `ERRORED` 状态时，实例集状态更新发送不准确的信息。   修复了以下问题；Greengrass 的现有订阅超过 50 个时，部署无法完成。     | 
| 2.8.0 |  <a name="changelog-nucleus-2.8.0"></a>**新特征**<br />   更新了 Greengrass Nucleus，以报告[部署运行状态](deployment-health-notifications.md)响应，其中包括无法将组件部署到核心设备时的详细错误代码。有关更多信息，请参阅 [详细的部署错误代码](troubleshooting-deployment.md)。   更新了 Greengrass Nucleus，以报告[组件运行状态](deployment-health-notifications.md)响应，其中包括组件进入 `BROKEN` 或 `ERRORED` 状态时的详细错误代码。有关更多信息，请参阅 [详细的组件状态代码](troubleshooting-component.md)。   扩展状态消息字段以改善设备的云可用性信息。   提高了实例集状态服务的稳健性。   <br />**错误修复和改进**<br />   允许损坏的组件在配置更改时重新安装。   修复了以下问题：在引导部署期间内核重启会导致部署失败。   修复了以下问题：Windows 中根路径包含空格时安装失败。   修复了以下问题：在部署使用新版本的关闭脚本期间组件关闭。   各种关闭改进。   其他小型修复和改进。     | 
| 2.7.0 |  <a name="changelog-nucleus-2.7.0"></a>**新特征**<br />   更新 Greengrass 核心，以便在核心设备应用本地 AWS IoT Greengrass 部署时向云端发送状态更新。   添加了对由自定义证书颁发机构 (CA) 签名的客户端证书的支持，其中 CA 未在其中注册 AWS IoT。要使用此功能，您可以将新的 `greengrassDataPlaneEndpoint` 配置选项设置为 `iotdata`。有关更多信息，请参阅 [使用由私有 CA 签名的设备证书](configure-greengrass-core-v2.md#configure-nucleus-private-ca)。   <br />**错误修复和改进**<br />   修复了以下问题：在某些情况下，当内核停止或重启时，Greengrass Nucleus会回滚部署。现在，在内核重启后，内核会恢复部署。   更新了 Greengrass 安装程序，使其在您指定将软件设置为系统服务时遵守 `--start` 参数。   更新了 [SubscribeToComponentUpdates](ipc-component-lifecycle.md#ipc-operation-subscribetocomponentupdates) 的行为，以在内核更新组件的事件中设置部署 ID。   其他小型修复和改进。     | 
| 2.6.0 |  <a name="changelog-nucleus-2.6.0"></a>**新特征**<br />   在您订阅本地 publish/subscribe 主题时添加对 MQTT 通配符的支持。有关更多信息，请参阅[发布/订阅本地消息](ipc-publish-subscribe.md)和[SubscribeToTopic](ipc-publish-subscribe.md#ipc-operation-subscribetotopic)。   添加了对于组件配置中的配方变量（`{{component_dependency_name}}:configuration:{{json_pointer}}` 配方变量除外）的支持。在配方中定义组件的 `DefaultConfiguration` 或在部署中配置组件时，您可以使用这些配方变量。要启用此功能，请将[插值ComponentConfiguration](#greengrass-nucleus-component-configuration-interpolate-component-configuration)配置选项设置为。`true`有关更多信息，请参阅[配方变量](component-recipe-reference.md#recipe-variables)和[在合并更新中使用配方变量](update-component-configurations.md#merge-configuration-update-recipe-variables)。   完全支持在进程间通信（IPC）授权策略中使用 `*` 通配符。现在，您可以在资源字符串中指定 `*` 字符以匹配任意字符组合。有关更多信息，请参阅 [授权策略中的通配符](interprocess-communication.md#ipc-authorization-policy-wildcards)。   支持自定义组件，以调用 Greengrass CLI 使用的 IPC 操作。您可以使用这些 IPC 操作来管理本地部署、查看组件详细信息，以及生成用于登录[本地调试控制台](local-debug-console-component.md)的密码。有关更多信息，请参阅 [IPC：管理本地部署和组件](ipc-local-deployments-components.md)。   <br />**错误修复和改进**<br />   修复了以下问题：在某些情况下，当依赖组件的硬依赖关系重启或状态改变时，依赖组件没有反应。   改进了部署失败时核心设备向 AWS IoT Greengrass 云服务报告的错误消息。   修复了以下问题：当内核重启时，Greengrass Nucleus 在某些情况下两次应用事物部署。   其他小型修复和改进。有关更多信息，请参阅[上的](https://github.com/aws-greengrass/aws-greengrass-nucleus/releases)版本 GitHub。     | 
| 2.5.6 |  <a name="changelog-nucleus-2.5.6"></a>**新特征**<br />   添加了对使用 ECC 密钥的硬件安全模块的支持。您可以使用硬件安全模块（HSM）来安全存储设备的私钥和证书。有关更多信息，请参阅 [硬件安全性集成](hardware-security.md)。   <br />**错误修复和改进**<br />   修复了在某些情况下部署安装脚本损坏的组件时，部署永不完成的问题。   改进了启动期间的性能。   其他小型修复和改进。     | 
| 2.5.5 |  <a name="changelog-nucleus-2.5.5"></a>**新特征**<br />   为组件添加 `GG_ROOT_CA_PATH` 环境变量，以便您可以在自定义组件中访问根证书颁发机构（CA）证书。   <br />**错误修复和改进**<br />   添加对使用非英语语言显示的 Windows 设备的支持。   更新了 Greengrass Nucleus 解析布尔[安装程序参数](configure-installer.md)的方式，以便您可以通过指定不带布尔值的布尔参数来指定 `true` 值。例如，您现在可以指定 `--provision`（而不是 `--provision true`）来通过自动资源预置进行安装。   修复了在某些情况下核心设备在配置后未向 AWS IoT Greengrass 云服务报告其状态的问题。   其他小型修复和改进。     | 
| 2.5.4 |  <a name="changelog-nucleus-2.5.4"></a>**错误修复和改进**<br />   常规错误修复和性能改进。     | 
| 2.5.3 |  <a name="changelog-nucleus-2.5.3"></a>**新特征**<br />   添加了对硬件安全集成的支持。您可以使用硬件安全模块（HSM）来安全存储设备的私钥和证书。有关更多信息，请参阅 [硬件安全性集成](hardware-security.md)。   <br />**错误修复和改进**<br />   修复了内核与 AWS IoT Core建立 MQTT 连接时出现运行时异常的问题。     | 
| 2.5.2 |  <a name="changelog-nucleus-2.5.2"></a>**错误修复和改进**<br />   修复了以下问题：Greengrass Nucleus 更新后，Windows 服务在停止或重启设备后无法再次启动。     | 
| 2.5.1 |   此版本不再可用。此版本的改进将在此组件的更高版本中提供。  <a name="changelog-nucleus-2.5.1"></a>**错误修复和改进**<br />   支持 Windows 上的 32 位版本 Java 运行时环境（JRE）。   更改其 AWS IoT 策略未授予 `greengrass:ListThingGroupsForCoreDevice` 权限的核心设备的事物组删除行为。在此版本中，部署会继续进行，但会记录警告，并且在从事物组中删除核心设备时不会删除组件。有关更多信息，请参阅 [将 AWS IoT Greengrass 组件部署到设备](manage-deployments.md)。   修复了 Greengrass Nucleus向 Greengrass 组件进程提供的系统环境变量的问题。现在，您可以重新启动组件，使其使用最新的系统环境变量。     | 
| 2.5.0 |  <a name="changelog-nucleus-2.5.0"></a>**新特征**<br />   添加了对运行 Windows 的核心设备的支持。   更改了删除事物组的行为。使用此版本，您可以从事物组中删除核心设备，以便在下次部署中卸载该事物组的组件。 <br /><a name="greengrass-nucleus-v2.5.0-thing-group-removal-permission-requirement"></a>由于此次更改，核心设备的 AWS IoT 政策必须`greengrass:ListThingGroupsForCoreDevice`获得许可。如果您使用[AWS IoT Greengrass 核心软件安装程序预置资源](quick-installation.md)，则默认 AWS IoT 策略允许`greengrass:*`，其中包括此权限。有关更多信息，请参阅 [设备身份验证和授权 AWS IoT Greengrass](device-auth.md)。   添加了对 HTTPS 代理配置的支持。有关更多信息，请参阅 [通过端口 443 或网络代理进行连接](configure-greengrass-core-v2.md#configure-alpn-network-proxy)。   添加了新的 `windowsUser` 配置参数。您可以使用此参数指定用于在 Windows 核心设备上运行组件的默认用户。有关更多信息，请参阅 [配置运行组件的用户](configure-greengrass-core-v2.md#configure-component-user)。   添加了新的 `httpClient` 配置选项，您可以使用这些选项来自定义 HTTP 请求超时时间，从而提高慢速网络的性能。有关更多信息，请参阅 [httpClient](#greengrass-nucleus-component-configuration-http-client) 配置参数。   <br />**错误修复和改进**<br />   修复了从组件重启核心设备的引导生命周期选项。   在配方变量中添加对连字符的支持。   修复了按需 Lambda 函数组件的 IPC 授权。   改进了日志消息，并将非关键日志从 `INFO` 更改为 `DEBUG` 级别，以便使日志更有用。   移除 Greengrass AWS IoT Greengrass 核心在[安装具有自动配置功能的 Core 软件时创建的默认[代币交换角色的`iot:DescribeCertificate`](device-service-role.md)权限。](quick-installation.md)Greengrass Nucleus不使用此权限。   修复了一个问题，使自动预置脚本不需要 `iam:GetPolicy` 权限（如果 `iam:CreatePolicy` 适用于同一策略）。   其他小型修复和改进。     | 
| 2.4.0 |  <a name="changelog-nucleus-2.4.0"></a>**新特征**<br />   添加了对系统资源限制的支持。您可以配置每个组件进程可在核心设备上使用的最大 CPU 和 RAM 用量。有关更多信息，请参阅 [配置组件的系统资源限制](configure-greengrass-core-v2.md#configure-component-system-resource-limits)。   添加 IPC 操作以暂停和恢复组件。有关更多信息，请参阅[PauseComponent](ipc-component-lifecycle.md#ipc-operation-pausecomponent)和[ResumeComponent](ipc-component-lifecycle.md#ipc-operation-resumecomponent)。   添加了对预置插件的支持。您可以指定在安装期间运行的 JAR 文件，为 Greengrass 核心设备配置所需的 AWS 资源。Greengrass Nucleus包含一个接口，您可以实施该接口来开发自定义预置插件。有关更多信息，请参阅 [安装 AWS IoT Greengrass 具有自定义资源配置功能的核心软件](custom-provisioning.md)。   向 AWS IoT Greengrass Core 软件安装程序添加可选`thing-name-policy`参数。[安装具有自动资源配置功能的 AWS IoT Greengrass Core 软件时，您可以使用此选项指定现有 AWS IoT 策略或自定义策略](quick-installation.md)。   <br />**错误修复和改进**<br />   启动时更新日志记录配置。这次修复了启动时未应用日志配置的问题。   更新了内核加载程序符号链接，使其在安装过程中指向 Greengrass 根文件夹中的组件存储。此更新使您能够删除安装 Core 软件时下载的 JAR 文件和其他 AWS IoT Greengrass 核心构件。   其他小型修复和改进。有关更多信息，请参阅[上的](https://github.com/aws-greengrass/aws-greengrass-nucleus/releases)版本 GitHub。     | 
| 2.3.0 |  <a name="changelog-nucleus-2.3.0"></a>**新特征**<br />   支持部署配置文档，最大容量从 7 KB（针对事物的部署）或 31 KB（针对事物组的部署）增加至 10 MB。 <br /><a name="greengrass-nucleus-v2.3.0-large-configuration-support-permission"></a>要使用此功能，核心设备的 AWS IoT 策略必须允许该`greengrass:GetDeploymentConfiguration`权限。如果您使用[AWS IoT Greengrass 酷睿软件安装程序来配置资源](quick-installation.md)，则您的核心设备的 AWS IoT 政策允许`greengrass:*`，其中包括此权限。有关更多信息，请参阅 [设备身份验证和授权 AWS IoT Greengrass](device-auth.md)。     添加了 `iot:thingName` 配方变量。你可以使用这个配方变量来获取配方中 AWS IoT 核心设备的名称。有关更多信息，请参阅 [配方变量](component-recipe-reference.md#recipe-variables)。   <br />**错误修复和改进**<br />   其他小型修复和改进。有关更多信息，请参阅[上的](https://github.com/aws-greengrass/aws-greengrass-nucleus/releases)版本 GitHub。     | 
| 2.2.0 |  <a name="changelog-nucleus-2.2.0"></a>**新特征**<br />   添加了用于本地影子管理的 IPC 操作。   <br />**错误修复和改进**<br />   缩小 JAR 文件的大小。   减少内存使用量。   修复了在某些情况下日志配置未更新的问题。   其他小型修复和改进。有关更多信息，请参阅[上的](https://github.com/aws-greengrass/aws-greengrass-nucleus/releases)版本 GitHub。     | 
| 2.1.0 |  <a name="changelog-nucleus-2.1.0"></a>**新特征**<br />   支持从 Amazon ECR 中的私有存储库下载 Docker 映像。   添加了以下参数以自定义核心设备上的 MQTT 配置：   `maxInFlightPublishes` – 可同时传输的未确认 MQTT QoS 1 消息的最大数量。   `maxPublishRetry` – 消息发布失败的最大重试次数。     添加了 `fleetstatusservice` 配置参数，以配置核心设备向 AWS 云发布设备状态的时间间隔。   其他小型修复和改进。有关更多信息，请参阅[上的](https://github.com/aws-greengrass/aws-greengrass-nucleus/releases)版本 GitHub。   <br />**错误修复和改进**<br />   修复了内核重启时导致影子部署重复的问题。   修复了在遇到服务加载异常时导致内核崩溃的问题。   改进了组件依赖关系解决方案，使包含循环依赖关系的部署失败。   修复了以下问题：在插件组件之前已从核心设备中删除时无法重新部署该组件。   修复了导致 Lambda 组件或以根用户身份运行的组件的 `HOME` 环境变量设置为 `{{/greengrass/v2}}/work` 目录的问题。现在，`HOME` 变量已正确设置为运行该组件的用户的主目录。   其他小型修复和改进。有关更多信息，请参阅[上的](https://github.com/aws-greengrass/aws-greengrass-nucleus/releases)版本 GitHub。     | 
| 2.0.5 |  <a name="changelog-nucleus-2.0.5"></a>**错误修复和改进**<br />   下载 AWS提供的组件时，通过配置的网络代理正确路由流量。   在 AWS 中国区域使用正确的 Greengrass 数据面板端点。     | 
| 2.0.4 |  <a name="changelog-nucleus-2.0.4"></a>**新特征**<br />   支持通过端口 443 传输 HTTPS 流量。您可以使用内核组件版本 2.0.4 的新 `greengrassDataPlanePort` 配置参数，将 HTTPS 通信配置为通过端口 443 而不是默认端口 8443 传输。有关更多信息，请参阅 [通过端口 443 配置 HTTPS](configure-greengrass-core-v2.md#configure-https-port-443)。   添加了工作路径配方变量。您可以使用此配方变量来获取组件的工作文件夹路径，您可以使用该路径在组件及其依赖关系之间共享文件。有关更多信息，请参阅[工作路径配方变量](component-recipe-reference.md#component-recipe-work-path)。   <br />**错误修复和改进**<br />   如果角色策略已经存在，则禁止创建代币交换 AWS Identity and Access Management (IAM) 角色策略。 <br />由于此更改，安装程序现在与 `--provision true` 一起运行时需要 `iam:GetPolicy` 和 `sts:GetCallerIdentity`。有关更多信息，请参阅 [安装程序配置资源的最低 IAM 策略](provision-minimal-iam-policy.md)。   正确处理尚未成功注册的部署的取消。   更新配置以在回滚部署时删除带有较新时间戳的较早条目。   其他小型修复和改进。有关更多信息，请参阅[上的](https://github.com/aws-greengrass/aws-greengrass-nucleus/releases)版本 GitHub。     | 
| 2.0.3 | 初始版本。 | 