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

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

Greengrass 核心

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

重要

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

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

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

此组件具有以下版本:

  • 2.0.x

Requirements

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

Installation

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

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

Configuration

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

iotRoleAlias

指向 IAM 角色的 AWS AWS IoT 角色别名。AWS AWS IoT 凭证提供程序将代入此角色以允许 Greengrass 核心设备与 AWS 服务交互。

当您使用 --provision true 选项运行 AWS AWS IoT Greengrass 核心软件时,软件会预置角色别名并在 viot 组件中设置其值。有关更多信息,请参阅授权核心设备与 AWS 服务交互

networkProxy

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

重要

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

此对象包含以下信息:

noProxyAddresses

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

proxy

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

url

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

  • scheme – 方案,必须为 httphttps

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

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

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

    • http – 80

    • https – 443

username

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

password

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

mqtt

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

重要

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

此对象包含以下信息:

port

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

默认值: 8883

keepAliveTimeoutMs

(可选)客户端发送的每条PING消息之间的时间量(以毫秒为单位),用于保持 MQTT 连接活动。

默认值60000:(60 秒)

pingTimeoutMs

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

默认值30000:(30 秒)

spooler

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

maxSizeInBytes

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

默认值:2621440 (2.5 MB)

keepQos0WhenOffline

(可选)您可以将核心设备脱机时收到的 MQTT QoS 0 消息假脱机。如果将此选项设置为 true,则核心设备后台处理它在脱机时无法发送的 QoS 0 消息。如果将此选项设置为 false,核心设备将丢弃这些消息。核心设备始终假脱机 QoS 1 消息,除非假脱机已满。

默认值: false

jvmOptions

(可选) 用于运行 AWS AWS IoT Greengrass 核心软件的 JVM 选项。例如,要指定最大堆大小,您可以将此选项设置为 -Xmx64m

重要

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

iotDataEndpoint

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

当您使用 --provision true 选项运行 AWS AWS IoT Greengrass 核心软件时,该软件将从 AWS IoT IoT 获取您的数据和凭证终端节点,并在 Ambda 组件中设置它们。

iotCredEndpoint

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

当您使用 --provision true 选项运行 AWS AWS IoT Greengrass 核心软件时,该软件将从 AWS IoT IoT 获取您的数据和凭证终端节点,并在 Ambda 组件中设置它们。

greengrassDataPlanePort

此参数在 v2 及更高版本的此组件中可用。

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

重要

您必须指定设备可在其中进行出站连接的端口。如果您指定的端口被阻止,设备将无法连接到 AWS AWS IoT Greengrass 以接收部署。

从以下选项中进行选择:

  • 443

  • 8443

默认值: 8443

awsRegion

要使用的 AWS 区域。

runWithDefault

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

重要

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

此对象包含以下信息:

posixUser

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

当您使用 --component-default-user ggc_user:ggc_group 选项运行 AWS AWS IoT Greengrass 核心软件时,软件会在 Ambda 组件中设置此参数。

您无法root为用户或组指定 0 或 。

logging

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

level

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

  • DEBUG

  • INFO

  • WARN

  • ERROR

默认值: INFO

format

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

  • TEXT

  • JSON

默认值: TEXT

outputType

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

  • FILE – AWS AWS IoT Greengrass 核心软件将日志输出到您在 中指定的目录中的文件outputDirectory

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

默认值: FILE

fileSizeKB

(可选)每个日志文件的最大大小(以 KB 为单位)。在日志文件超出此最大文件大小后 AWS IoT IoT Greengrass 核心软件将创建一个新的日志文件。

此参数仅在您FILE为 指定 时适用outputType

默认值: 1024

totalLogsSizeKB

(可选)所有日志文件的最大总大小(以 KB 为单位)。在所有日志文件的总大小超过此最大总大小后 AWS IoT IoT Greengrass 核心软件将删除最旧的日志文件。

此参数等同于 Log Manager 组件的系统日志磁盘空间限制参数。如果您在这两个组件上指定此参数 AWS IoT IoT Greengrass 核心软件使用两个值的最小值作为最大总日志大小。

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

默认值: 10240

outputDirectory

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

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

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

telemetry

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

此对象包含以下信息:

enabled

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

默认值: true

periodicAggregateMetricsIntervalSeconds

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

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

最小值:3600

默认值: 3600

periodicPublishMetricsIntervalSeconds

(可选)核心设备将遥测指标发布到 AWS 云的时间长度(以秒为单位)。

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

最小值:86400

默认值: 86400

deploymentPollingFrequency

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

默认值: 15

componentStoreMaxSize

(可选) 组件存储的磁盘上的最大大小,它包含组件配方和构件。

默认值10000000000:(10 GB)

platformOverrides

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

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

Changelog

下表描述了 组件的每个版本中的更改。

Version

更改

2.0.5

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

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

2.0.4

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

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

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

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

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

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

  • 其他较小的修复和改进。有关更多信息,请参阅 GitHub 上的 更改日志

2.0.3

初始版本。