本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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。
支持的平台
AWS IoT Greengrass 正式支持运行以下平台的设备。平台未包含在此列表中的设备可能可以运行,但只能在这些指定平台上 AWS IoT Greengrass 进行测试。
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-aws
meta-aws
项目提供了一些方法,可用于在使用Yocto Project构建 AWS 框架OpenEmbedded
操作系统
此组件可以安装在运行以下操作系统的核心设备上:
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
– 方案,必须是http
或https
。重要
Greengrass 核心设备必须运行 Greengrass nucleu s v2.5.0 或更高版本才能使用代理。HTTPS
如果您配置HTTPS代理,则必须将代理服务器 CA 证书添加到核心设备的 Amazon 根 CA 证书中。有关更多信息,请参阅 使核心设备能够信任代HTTPS理。
-
userinfo
–(可选)用户名和密码信息。如果您在url
中指定此信息,则 Greengrass 核心设备将忽略username
和password
字段。 -
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操作(例如
CONNECT
或PUBLISH
)完成的时间(以毫秒为单位)。此选项不适用于消息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
。您可指定Memory
或Disk
。此功能适用于 Greengrass Nucleus 组件的 v2.11.0 及更高版本。
重要
如果MQTT后台处理程序设置
storageType
为,Disk
并且您想要将 Greengrass nucleus 从 2.11.x 版本降级到早期版本,则必须将配置更改回到。Memory
Greengrass 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。您可指定
mqtt3
或mqtt5
。此功能适用于 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_user
或ggc_user:ggc_group
。有关更多信息,请参阅 配置运行组件的用户。当你使用
--component-default-user
选项运行 AWS IoT Greengrass Core 软件安装程序时,软件会在 nucleus 组件中设置此参数。ggc_user
:ggc_group
windowsUser
-
此组件的 v2.5.0 及更高版本中提供了此功能。
用于在 Windows 核心设备上运行此组件的 Windows 用户名称。用户必须存在于每台 Windows 核心设备上,其用户名和密码必须存储在 LocalSystem 账户的凭据管理器实例中。有关更多信息,请参阅 配置运行组件的用户。
当你使用
--component-default-user
选项运行 AWS IoT Greengrass Core 软件安装程序时,软件会在 nucleus 组件中设置此参数。ggc_user
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
– 如果您想以文本形式查看日志,请选择此选项。 -
JSON
— 如果您想使用 Greengrass lo CLI gs 命令查看日志或以编程方式与日志交互,请选择此选项。
默认值:
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
时,此参数才适用。默认值:
,其中
/logs/greengrass/v2
是 AWS IoT Greengrass 根文件夹。/greengrass/v2
-
-
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
-
(可选)标识核心设备平台的属性字典。使用它来定义自定义平台属性,组件配方可以使用这些属性来识别组件的正确生命周期和构件。例如,您可以定义硬件功能属性,以便仅部署组件运行所需的最小构件集。有关更多信息,请参阅组件配方中的清单平台参数。
您也可以使用此参数来覆盖核心设备的
os
和architecture
平台属性。 -
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" } }
本地日志文件
此组件使用以下日志文件。
查看此组件的日志
-
在核心设备上运行以下命令以实时查看此组件的日志文件。将
或/greengrass/v2
C:\greengrass\v2
替换为 AWS IoT Greengrass 根文件夹的路径。
更改日志
下表介绍每个组件版本的更改。
版本 |
更改 |
---|---|
emrfs |
|
2.13.0 |
|
2.12.6 |
|
2.12.5 |
|
2.12.4 |
|
2.12.3 |
警告此版本不再可用。此版本的改进将在此组件的更高版本中提供。 错误修复和改进
|
2.12.2 |
|
2.12.1 |
|
2.12.0 |
|
2.11.3 |
|
2.11.2 |
|
2.11.1 |
|
2.11.0 |
|
2.10.3 |
|
2.10.2 |
|
2.10.1 |
|
2.10.0 |
|
2.9.6 |
|
2.9.5 |
|
2.9.4 |
|
2.9.3 |
|
2.9.2 |
|
2.9.1 |
|
2.9.0 |
|
2.8.1 |
|
2.8.0 |
|
2.7.0 |
|
2.6.0 |
|
2.5.6 |
|
2.5.5 |
|
2.5.4 |
|
2.5.3 |
|
2.5.2 |
|
2.5.1 |
警告此版本不再可用。此版本的改进将在此组件的更高版本中提供。
|
2.5.0 |
|
2.4.0 |
|
2.3.0 |
|
2.2.0 |
|
2.1.0 |
|
2.0.5 |
|
2.0.4 |
|
2.0.3 |
初始版本。 |