流管理器 - AWS IoT Greengrass

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

流管理器

流管理器组件 (aws.greengrass.StreamManager) 使您能够处理要 AWS Cloud 从 Greengrass 核心设备传输到的数据流。

有关如何在自定义组件中配置和使用流管理器的更多信息,请参阅管理 Greengrass 核心设备上的数据流

版本

此组件具有以下版本:

  • 2.2.x

  • 2.1.x

  • 2.0.x

注意

如果您使用流管理器将数据导出到云端,则无法将流管理器组件 2.0.7 版本升级到 v2.0.8 到 v2.0.11 之间的版本。如果您是首次部署流管理器,我们强烈建议您部署最新版本的流管理器组件。

Type

组件是一个通用组件 (aws.greengrass.generic)。Greengrass Nucleus 运行组件的生命周期脚本。

有关更多信息,请参阅组件类型

操作系统

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

  • Linux

  • Windows

要求

此组件具有以下要求:

  • 令牌交换角色必须允许访问您在直播管理器中使用的 AWS Cloud 目的地。有关更多信息,请参阅:

  • 支持在中运行流管理器组件VPC。要在中部署此组件VPC,需要满足以下条件。

    • 流管理器组件必须连接到您向其发布数据的 AWS 服务。

      • Amazon S3:com.amazonaws.region.s3

      • Amazon Kinesis Data Streams:com.amazonaws.region.kinesis-streams

      • AWS IoT SiteWise: com.amazonaws.region.iotsitewise.data

    • 如果您将数据发布到us-east-1该区域的 Amazon S3,则默认情况下,此组件将尝试使用 S3 全局终端节点;但是,此终端节点无法通过 Amazon S3 VPC 接口终端节点使用。有关更多信息,请参阅 Amazon S3 AWS PrivateLink 的限制和限制。要解决此问题,您可从以下选项中进行选择。

      • 通过在 JVM_ARGS 中设置 -Daws.s3UseUsEast1RegionalEndpoint=regional,将流管理器组件配置为使用 us-east-1 区域中的区域 S3 端点。

      • 创建 Amazon S3 网关VPC终端节点,而不是亚马逊 S3 接口VPC终端节点。S3 网关端点支持访问 S3 全局端点。有关更多信息,请参阅创建网关端点

端点和端口

除基本操作所需的端点和端口外,此组件还必须能够对以下端点和端口执行出站请求。有关更多信息,请参阅 允许设备流量通过代理或防火墙

Endpoint 端口 Required 描述

iotanalytics.region.amazonaws.com

443

如果您向发布数据,则为必填项 AWS IoT Analytics。

kinesis.region.amazonaws.com

443

如果您将数据发布到 Firehose,则为必需。

data.iotsitewise.region.amazonaws.com

443

如果您向发布数据,则为必填项 AWS IoT SiteWise。

*.s3.amazonaws.com

443

如果您将数据发布到 S3 存储桶,则为必需。

您可以将 * 替换为发布数据的每个存储桶的名称。

依赖项

部署组件时, AWS IoT Greengrass 还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖关系的要求,才能成功部署组件。本部分列出了此组件的已发布版本的依赖关系,以及定义每个依赖关系的组件版本的语义版本约束。您还可以在 AWS IoT Greengrass 控制台中查看每个组件版本的依赖关系。在组件详细信息页面上,查找依赖关系列表。

2.2.0

下表列出了此组件版本 2.2.0 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.15.0 软性
令牌交换服务 >=2.2.0 硬性
2.1.13

下表列出了此组件版本 2.1.11 至 2.1.10 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.14.0 软性
令牌交换服务 >=0.0.0 硬性
2.1.11 - 2.1.12

下表列出了此组件版本 2.1.11 至 2.1.10 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.13.0 软性
令牌交换服务 >=0.0.0 硬性
2.1.9 – 2.1.10

下表列出了此组件版本 2.1.9 到 2.1.10 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.12.0 软性
令牌交换服务 >=0.0.0 硬性
2.1.5 – 2.1.8

下表列出了此组件版本 2.1.5 到 2.1.8 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.11.0 软性
令牌交换服务 >=0.0.0 硬性
2.1.2 – 2.1.4

下表列出了此组件版本 2.1.2 到 2.1.4 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.10.0 软性
令牌交换服务 >=0.0.0 硬性
2.1.1

下表列出了此组件的版本 2.1.1 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.9.0 软性
令牌交换服务 >=0.0.0 硬性
2.1.0

下表列出了此组件版本 2.1.0 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.8.0 软性
令牌交换服务 >=0.0.0 硬性
2.0.15

下表列出了此组件版本 2.0.15 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.7.0 软性
令牌交换服务 >=0.0.0 硬性
2.0.13 and 2.0.14

下表列出了此组件版本 2.0.13 和 2.0.14 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.6.0 软性
令牌交换服务 >=0.0.0 硬性
2.0.11 and 2.0.12

下表列出了此组件版本 2.0.11 和 2.0.12 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.5.0 软性
令牌交换服务 >=0.0.0 硬性
2.0.10

下表列出了此组件的版本 2.0.10 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.4.0 软性
令牌交换服务 >=0.0.0 硬性
2.0.9

下表列出了此组件的版本 2.0.9 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.3.0 软性
令牌交换服务 >=0.0.0 硬性
2.0.8

下表列出了此组件的版本 2.0.8 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.2.0 软性
令牌交换服务 >=0.0.0 硬性
2.0.7

下表列出了此组件的版本 2.0.7 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.3 <2.1.0 软性
令牌交换服务 >=0.0.0 硬性

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

配置

此组件提供您可以在部署组件时自定义的以下配置参数。

STREAM_MANAGER_STORE_ROOT_DIR

(可选)用于存储流的本地目录的绝对路径。此值必须以正斜杠开头(例如, /data)。

您必须指定现有文件夹,并且运行流管理器组件的系统用户必须拥有向此文件夹执行读取和写入的权限。例如,您可以运行以下命令来创建和配置文件夹 /var/greengrass/streams,并将其指定为流管理器根文件夹。这些命令允许默认系统用户 ggc_user 向该文件夹执行读取和写入。

sudo mkdir /var/greengrass/streams sudo chown ggc_user /var/greengrass/streams sudo chmod 700 /var/greengrass/streams

默认值:/greengrass/v2/work/aws.greengrass.StreamManager

STREAM_MANAGER_SERVER_PORT

(可选)用于与流管理器通信的本地端口号。

您可以指定 0 来使用随机可用端口。

默认值:8088

STREAM_MANAGER_AUTHENTICATE_CLIENT

(可选)您可以强制要求客户端先进行身份验证,再与流管理器交互。直播管理器SDK控制客户端和直播管理器之间的交互。此参数决定哪些客户端可以调用流管理器SDK来处理流。有关更多信息,请参阅流管理器客户端身份验证

如果您指定true,则流管理器仅SDK允许 Greengrass 组件作为客户端。

如果指定false,则流管理器SDK允许核心设备上的所有进程成为客户端。

默认值:true

STREAM_MANAGER_EXPORTER_MAX_BANDWIDTH

(可选)流管理器在导出数据时可使用的平均最大带宽(以千位/秒为单位)。

默认值:无限制

STREAM_MANAGER_EXPORTER_THREAD_POOL_SIZE

(可选)流管理器在导出数据时可使用的最大活动线程数。

最佳大小取决于您的硬件、流的量和计划的导出流数量。如果导出速度较慢,您可以调整此设置以找出适合您的硬件和业务案例的最佳大小。核心设备硬件的CPU和内存是限制因素。首先,您可以尝试将此值设置为等于设备上的处理器核心数。

请注意,不要设置大于硬件可以支持的大小。每个流都会消耗硬件资源,因此请尝试限制受约束设备上的导出流的数量。

默认值:5 个线程

STREAM_MANAGER_EXPORTER_S3_DESTINATION_MULTIPART_UPLOAD_MIN_PART_SIZE_BYTES

(可选)向 Amazon S3 分段上传时每个分段的大小上限(以字节为单位)。流管理器使用此设置和输入文件的大小来确定如何对分段PUT请求中的数据进行批处理。

注意

流管理器使用流 sizeThresholdForMultipartUploadBytes 属性来确定是以单段上传方式还是以分段上传方式导出到 Amazon S3。 AWS IoT Greengrass 组件可以在创建导出到 Amazon S3 的流时设置此阈值。

默认值:5242880(5MB) 这也是最小值。

LOG_LEVEL

(组件)组件的日志记录级别。从以下日志级别中选择,此处按级别顺序列出:

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

默认值:INFO

JVM_ARGS

(可选)在启动时传递给流管理器的自定义 Java 虚拟机参数。通过空格分隔多个参数。

只有在必须覆盖使用的默认设置时才使用此参数JVM。例如,如果计划导出大量的流,则可能需要增加默认堆大小。

例 示例:配置合并更新

以下示例配置指定使用非默认端口。

{ "STREAM_MANAGER_SERVER_PORT": "18088" }

本地日志文件

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

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

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

更改日志

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

版本

更改

2.2.0

新特征
  • 为启动超时添加新的配置密钥。默认值为 120 秒。

  • 为 Greengrass nucleus lite 添加了配方支持。

2.1.13

错误修复和改进

支持以下FIPS终端节点 AWS IoT SiteWise

2.1.12

错误修复和改进

更新凭据的使用顺序,以便服务请求的首选 Greengrass 凭据。 AWS

2.1.11

版本更新为 Greengrass Nucleus 版本 2.12.0 发布版。

2.1.10

错误修复和改进

修复了HTTPS代理配置不信任 Greengrass 证书颁发机构 (CA) 证书链的问题。

2.1.9

版本更新为 Greengrass Nucleus 版本 2.11.0 发布版。

2.1.8

错误修复和改进

修复了流管理器无限重试 SiteWise 导出失败的问题。InvalidRequestException

2.1.7

错误修复和改进

修复了以下问题:流管理器无法正确读取代理配置。

2.1.6

错误修复和改进

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

2.1.5

版本更新为 Greengrass Nucleus 版本 2.10.0 发布版。

2.1.4

错误修复和改进
  • 修复了在单个批量中返回ConflictingOperationException具有相同时间戳的相同属性资产的条目会 SiteWise API导致流管理器不断重试的问题。

  • 将默认连接超时时间从 3 秒更新为 1 分钟。

2.1.3

错误修复和改进

修复了以SYSTEM用户身份运行时在 Windows 操作系统上出现的启动问题。

2.1.2

错误修复和改进
  • 修复了以下问题:Windows 操作系统使用非英语语言。

  • 对 Greengrass Nucleus版本 2.9.0 发行版进行了版本更新。

2.1.1

版本更新为 Greengrass Nucleus 版本 2.8.0 发布版。

2.1.0

新特征

2.0.15

版本更新为 Greengrass Nucleus 版本 2.6.0 发布版。

2.0.14

此版本包含错误修复和改进。

2.0.13

版本更新为 Greengrass Nucleus 版本 2.5.0 发布版。

2.0.12
错误修复和改进

修复了以下问题:无法从流管理器 v2.0.7 升级到 v2.0.8 和 v2.0.11 之间的版本。如果您使用流管理器将数据导出到云端,则现在可以升级到 v2.0.12。

2.0.11

版本更新为 Greengrass Nucleus 版本 2.4.0 发布版。

2.0.10

版本更新为 Greengrass Nucleus 版本 2.3.0 发布版。

2.0.9

对 Greengrass Nucleus 版本 2.2.0 发行版进行了版本更新。

2.0.8

对 Greengrass Nucleus 版本 2.1.0 发行版进行了版本更新。

2.0.7

初始版本。