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

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

Greengrass 核心

Greengrass 核分量 (aws.greengrass.Nucleus)是一个强制组件,并且是运行Amazon IoT Greengrass设备上的核心软件。您可以将此组件配置为自定义和更新Amazon IoT GreengrassCore 软件远程。部署此组件以配置代理、设备角色和Amazon IoT在您的核心设备上配置事物。

重要

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

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

为了防止对设备上运行的组件进行意外更新,我们建议您在创建部署. 有关更新行为的更多信息,Amazon IoT GreengrassCore 软件,请参阅更新Amazon IoT Greengrass核心软件 (OTA).

Versions

此组件具有以下版本:

  • 2.4.x

  • 2.3.x

  • 2.2.x

  • 2.1.x

  • 2.0.x

Requirements

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

Dependencies

Greengrass 核不包括任何组件依赖关系。然而,几个Amazon-提供的组件包括核作为依赖关系。有关更多信息,请参阅Amazon-提供的组件

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

Installation

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

您还可以按照教程安装 Greengrass 核心并探索 Greengrass 组件的开发。有关更多信息,请参阅开始使用 Amazon IoT Greengrass V2

Configuration

此组件提供了以下配置参数,您可以在部署组件时自定义这些参数。某些参数要求Amazon IoT Greengrass核心软件重新启动以生效。有关配置此组件的原因以及如何配置的详细信息,请参阅。配置Amazon IoT GreengrassCore 软件.

iotRoleAlias

这些区域有:Amazon IoT角色别名,指向令牌交换 IAM 角色。这些区域有:Amazon IoT凭据提供程序承担此角色,以允许 Greengrass 核心设备与Amazon服务。有关更多信息,请参阅授权核心设备与Amazon服务

当您运行Amazon IoT GreengrassCore 软件带有--provision true选项,软件会预配角色别名并在核心组件中设置其值。

networkProxy

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

重要

当您将更改部署到此配置参数时,Amazon IoT Greengrass核心软件重启以使更改生效。

此对象包含以下信息:

noProxyAddresses

(可选)免于代理服务器的 IP 地址或主机名称以逗号分隔的列表。

proxy

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

url

格式为代理服务器的 URLscheme://userinfo@host:port.

  • scheme— 该计划,这必须是http.

  • userinfo— (可选) 用户名和密码信息。如果您在url,Greengrass 核心设备将忽略usernamepassword字段之间没有不同。

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

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

    • http—80

username

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

password

(可选)验证代理服务器的口令。

mqtt

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

重要

当您将更改部署到此配置参数时,Amazon IoT Greengrass核心软件重启以使更改生效。

此对象包含以下信息:

port

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

默认值:8883

keepAliveTimeoutMs

(可选)每个PING消息,客户端发送以保持 MQTT 连接处于活动状态。

默认值:60000(60 秒)

pingTimeoutMs

(可选)客户端等待接收PINGACK来自服务器的消息。如果等待超过超时,核心设备将关闭并重新打开 MQTT 连接。

默认值:30000(30 秒)

maxInFlightPublishes

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

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

默认值:5

有效范围:最大值为 100

maxMessageSizeInBytes

(可选)MQTT 消息的最大大小。如果消息超过此大小,则 Greengrass 核将拒绝该消息并出现错误。

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

默认值:131072(128 千字节)

有效范围:最大值2621440(2.5 兆字节)

maxPublishRetry

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

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

默认值:100

spooler

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

maxSizeInBytes

(可选)核心设备在内存中存储未处理的 MQTT 消息的高速缓存的最大大小。如果缓存已满,核心设备会丢弃最早的消息以添加新的网格。

默认值:2621440(2.5 兆字节)

keepQos0WhenOffline

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

默认值:false

jvmOptions

(可选)用于运行Amazon IoT GreengrassCore 软件。有关运行推荐的 JVM 选项的信息Amazon IoT GreengrassCore 软件,请参阅使用 JVM 选项控制内存分配.

重要

当您将更改部署到此配置参数时,Amazon IoT Greengrass核心软件重启以使更改生效。

iotDataEndpoint

这些区域有:Amazon IoT数据终端节点 Amazon Web Services 账户 .

当您运行Amazon IoT GreengrassCore 软件带有--provision true选项,则软件将数据和凭据终端节点从Amazon IoT并将它们设置在核组件中。

iotCredEndpoint

这些区域有:Amazon IoT凭据终端节点 Amazon Web Services 账户 .

当您运行Amazon IoT GreengrassCore 软件带有--provision true选项,则软件将数据和凭据终端节点从Amazon IoT并将它们设置在核组件中。

greengrassDataPlanePort

此功能在 v2.0.4 及更高版本中提供。

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

重要

您必须指定设备可以建立出站连接的端口。如果您指定了一个被阻止的端口,则设备将无法连接到Amazon IoT Greengrass以接收部署。

从以下选项中进行选择:

  • 443

  • 8443

默认值:8443

awsRegion

这些区域有: Amazon Web Services 区域 要使用。

runWithDefault

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

重要

当您将更改部署到此配置参数时,Amazon IoT Greengrass核心软件重启以使更改生效。

此对象包含以下信息:

posixUser

核心设备用于运行组件的系统用户和系统组的名称或 ID。指定用户和组,由冒号分隔 (:),其中组是可选的。如果省略该组,则Amazon IoT Greengrass核心软件默认为您指定的用户的主要组。举例来说,可以指定 ggc_userggc_user:ggc_group。有关更多信息,请参阅配置运行组件的用户和组

当您运行Amazon IoT GreengrassCore 软件带有--component-default-user ggc_user:ggc_group选项,软件将在核心组件中设置此参数。

您不能指定root或者0,用于用户或组。

systemResourceLimits

此功能在 v2.4.0 及更高版本中提供。

默认情况下应用于组件进程的系统资源限制。创建部署时,可以覆盖各个组件的系统资源限制。有关更多信息,请参阅配置组件的系统资源限制

此对象包含以下信息:

cpus

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

memory

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

logging

(可选)核心设备的日志记录配置。此对象包含以下信息:

level

(可选) 要上传的最低信息级别。从以下日志级别中选择,此处按级别顺序列出:

  • DEBUG

  • INFO

  • WARN

  • ERROR

默认值:INFO

format

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

  • TEXT

  • JSON

默认值:TEXT

outputType

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

  • FILE—Amazon IoT Greengrass核心软件将日志输出到指定的目录中的文件中outputDirectory.

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

默认值:FILE

fileSizeKB

(可选)每个日志文件的最大大小(以千字节为单位)。当日志文件超过此最大文件大小后,Amazon IoT Greengrass核心软件将创建新的日志文件。

此参数仅适用于指定FILE对于 来说为outputType.

默认值:1024

totalLogsSizeKB

(可选)所有日志文件的最大总大小(以千字节为单位)。所有日志文件的总大小超过此最大总大小后,Amazon IoT Greengrass核心软件删除最早的日志文件。

此参数等效于系统日志磁盘空间限制参数 (diskSpaceLimit)日志管理器组件. 如果在两个组件上指定此参数,则Amazon IoT Greengrass核心软件使用这两个值中的最小值作为最大总日志大小。

此参数仅适用于指定FILE对于 来说为outputType.

默认值:10240

outputDirectory

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

此参数仅适用于指定FILE对于 来说为outputType.

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

fleetstatus

此参数在 v2.1.0 及更高版本中提供。

(可选)核心设备的队列状态配置。

此对象包含以下信息:

periodicStatusPublishIntervalSeconds

(可选)核心设备将设备状态发布到 Amazon Web Services 云 .

最低:86400

默认值:86400

telemetry

(可选)核心设备的系统健康状况遥测配置。有关遥测量度量以及如何处理遥测数据的详细信息,请参阅收集系统健康状况遥测数据,从Amazon IoT Greengrass核心设备.

此对象包含以下信息:

enabled

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

默认值:true

periodicAggregateMetricsIntervalSeconds

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

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

最低:3600

默认值:3600

periodicPublishMetricsIntervalSeconds

(可选)核心设备将遥测指标发布到 Amazon Web Services 云 .

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

最低:86400

默认值:86400

deploymentPollingFrequencySeconds

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

默认值:15

componentStoreMaxSizeBytes

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

默认值:10000000000(10 GB)

platformOverride

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

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

例如:配置 merge 更新

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

Changelog

下表介绍每一版的中的更改。

Version

更改

2.4.0

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

  • 在安装过程中,更新核加载器符号链接,以指向 Greengrass 根文件夹中的组件存储。此更新使您可以删除 JAR 文件和其他核心工件,当您安装Amazon IoT GreengrassCore 软件。

  • 其他少量修复和性能改进。有关更多信息,请参阅 。更改日志(位于 GitHub 上)。

2.3.0

新功能
  • 添加iot:thingName配方变量。您可以使用此配方变量获取核心设备的名称。Amazon IoT东西在一个食谱。有关更多信息,请参阅配方变量

错误修复和改进
  • 其他少量修复和性能改进。有关更多信息,请参阅 。更改日志(位于 GitHub 上)。

2.2.0

新功能
  • 添加用于本地卷影管理的 IPC 操作。

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

  • 减少内存使用率。

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

  • 其他少量修复和性能改进。有关更多信息,请参阅 。更改日志(位于 GitHub 上)。

2.1.0

新功能
  • 支持在 Amazon ECR 中从私有存储库下载 Docker 镜像。

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

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

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

  • 添加fleetstatusservice配置参数,以配置核心设备将设备状态发布到 Amazon Web Services 云 .

  • 其他少量修复和性能改进。有关更多信息,请参阅 。更改日志(位于 GitHub 上)。

错误修复和改进
  • 修复了导致重新启动核心时重复卷影部署的问题。

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

  • 改进了组件依赖关系解析,使部署失败,包括循环依赖关系。

  • 修复了如果插件组件之前已从核心设备中删除,导致无法重新部署该组件的问题。

  • 修复了导致HOME环境变量设置为/greengrass/v2/work目录中的 Lambda 组件或以 root 身份运行的组件。这些区域有:HOME变量现在正确设置为运行该组件的用户的主目录。

  • 其他少量修复和性能改进。有关更多信息,请参阅 。更改日志(位于 GitHub 上)。

2.0.5

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

  • 使用正确的 Greengrass 数据平面端点Amazon中国地区。

2.0.4

新功能
  • 启用通过端口 443 的 HTTPS 流量。您可以使用新的greengrassDataPlanePort配置参数,以配置 HTTPS 通信,以便将 HTTPS 通信配置为通过端口 443(而不是默认端口 8443)进行传输。有关更多信息,请参阅通过端口 443 配置 HTTPS

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

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

    作为此更改的结果,安装程序现在需要iam:GetPolicysts:GetCallerIdentity运行时--provision true. 有关更多信息,请参阅安装程序用于配置资源的最小 IAM 策略

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

  • 更新配置,以便在回滚部署时删除具有较新时间戳的旧条目。

  • 其他少量修复和性能改进。有关更多信息,请参阅 。更改日志(位于 GitHub 上)。

2.0.3

初始版本。