

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

# 流管理器
<a name="stream-manager-component"></a>

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

有关如何在自定义组件中配置和使用流管理器的更多信息，请参阅[管理 Greengrass 核心设备上的数据流](manage-data-streams.md)。

**Topics**
+ [版本](#stream-manager-component-versions)
+ [Type](#stream-manager-component-type)
+ [操作系统](#stream-manager-component-os-support)
+ [要求](#stream-manager-component-requirements)
+ [依赖项](#stream-manager-component-dependencies)
+ [配置](#stream-manager-component-configuration)
+ [本地日志文件](#stream-manager-component-log-file)
+ [更改日志](#stream-manager-component-changelog)

## 版本
<a name="stream-manager-component-versions"></a>

此组件具有以下版本：
+ 2.2.x
+ 2.1.x
+ 2.0.x

**注意**  <a name="stream-manager-upgrade-note"></a>
如果您使用流管理器将数据导出到云端，则无法将流管理器组件 2.0.7 版本升级到 v2.0.8 到 v2.0.11 之间的版本。如果您是首次部署流管理器，我们强烈建议您部署最新版本的流管理器组件。

## Type
<a name="stream-manager-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>组件是一个通用组件 (`aws.greengrass.generic`)。[Greengrass Nucleus](greengrass-nucleus-component.md) 运行组件的生命周期脚本。

<a name="public-component-type-more-information"></a>有关更多信息，请参阅[组件类型](develop-greengrass-components.md#component-types)。

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

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

## 要求
<a name="stream-manager-component-requirements"></a>

此组件具有以下要求：
+ [令牌交换角色](device-service-role.md)必须允许访问您在直播管理器中使用的 AWS 云 目的地。有关更多信息，请参阅:<a name="export-destinations-links"></a>
  + [AWS IoT Analytics 频道](stream-export-configurations.md#export-to-iot-analytics)
  + [Amazon Kinesis data streams](stream-export-configurations.md#export-to-kinesis)
  + [AWS IoT SiteWise 资产属性](stream-export-configurations.md#export-to-iot-sitewise)
  + [Amazon S3 对象](stream-export-configurations.md#export-to-s3)
+ 支持在 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 的限制和限制](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#privatelink-limitations)。要解决此问题，您可从以下选项中进行选择。
    + 通过在 `JVM_ARGS` 中设置 `-Daws.s3UseUsEast1RegionalEndpoint=regional`，将流管理器组件配置为使用 `us-east-1` 区域中的区域 S3 端点。
    + 创建 Amazon S3 网关 VPC 端点，而不是 Amazon S3 接口 VPC 端点。S3 网关端点支持访问 S3 全局端点。有关更多信息，请参阅[创建网关端点](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#create-gateway-endpoint-s3)。

### 端点和端口
<a name="stream-manager-component-endpoints"></a>

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


| 终端节点 | 端口 | 必需 | 描述 | 
| --- | --- | --- | --- | 
|  `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 存储桶，则为必需。 您可以将 `*` 替换为发布数据的每个存储桶的名称。  | 

## 依赖项
<a name="stream-manager-component-dependencies"></a>

部署组件时， AWS IoT Greengrass 还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖关系的要求，才能成功部署组件。本部分列出了此组件的[已发布版本](#stream-manager-component-changelog)的依赖关系，以及定义每个依赖关系的组件版本的语义版本约束。您还可以在 [AWS IoT Greengrass 控制台](https://console.aws.amazon.com//greengrass)中查看每个组件版本的依赖关系。在组件详细信息页面上，查找**依赖关系**列表。

------
#### [ 2.1.3 – 2.2.1 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <3.0.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------
#### [ 2.1.11 – 2.1.12 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.13.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------
#### [ 2.1.9 – 2.1.10 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.12.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------
#### [ 2.1.5 – 2.1.8 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.11.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------
#### [ 2.1.2 – 2.1.4 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.10.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------
#### [ 2.1.1 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.9.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------
#### [ 2.1.0 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.8.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------
#### [ 2.0.15 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.7.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------
#### [ 2.0.13 and 2.0.14 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.6.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------
#### [ 2.0.11 and 2.0.12 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.5.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------
#### [ 2.0.10 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.4.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------
#### [ 2.0.9 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.3.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------
#### [ 2.0.8 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.2.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------
#### [ 2.0.7 ]

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


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.0.3 <2.1.0  | 软性 | 
| [令牌交换服务](token-exchange-service-component.md) |  >=0.0.0  | 硬性 | 

------

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

## 配置
<a name="stream-manager-component-configuration"></a>

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

`STREAM_MANAGER_STORE_ROOT_DIR`  
（可选）用于存储流的本地目录的绝对路径。此值必须以正斜杠开头（例如， `/data`）。  
<a name="stream-manager-store-root-dir-parameter-folder-requirements"></a>您必须指定现有文件夹，并且[运行流管理器组件的系统用户](configure-greengrass-core-v2.md#configure-component-user)必须拥有向此文件夹执行读取和写入的权限。例如，您可以运行以下命令来创建和配置文件夹 `/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 来处理流。有关更多信息，请参阅[流管理器客户端身份验证](manage-data-streams.md#stream-manager-security-client-authentication)。  
如果您指定 `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 使用的默认设置时才使用此参数。例如，如果计划导出大量的流，则可能需要增加默认堆大小。

`startupTimeoutSeconds`  
（可选）组件启动的最长时间（以秒为单位）。如果时间超过此超时时间，则组件的状态将更改为 `ERRORED`。  
默认值：`120`

**Example 示例：配置合并更新**  
以下示例配置指定使用非默认端口。  

```
{
  "STREAM_MANAGER_SERVER_PORT": "18088"
}
```

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

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

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

```
/greengrass/v2/logs/aws.greengrass.StreamManager.log
```

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

```
C:\greengrass\v2\logs\aws.greengrass.StreamManager.log
```

------

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

------

## 更改日志
<a name="stream-manager-component-changelog"></a>

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


|  **版本**  |  **更改**  | 
| --- | --- | 
|  2.2.1  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/stream-manager-component.html) | 
|  2.2.0  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/stream-manager-component.html) | 
|  2.1.13  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/stream-manager-component.html) | 
|  2.1.12  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/stream-manager-component.html) | 
|  2.1.11  | 版本更新为 Greengrass Nucleus 版本 2.12.0 发布版。 | 
|  2.1.10  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.9  | 版本更新为 Greengrass Nucleus 版本 2.11.0 发布版。 | 
|  2.1.8  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.7  |  <a name="changelog-stream-manager-2.1.7"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.6  |  <a name="changelog-stream-manager-2.1.6"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.5  | 版本更新为 Greengrass Nucleus 版本 2.10.0 发布版。 | 
|  2.1.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.1  | 版本更新为 Greengrass Nucleus 版本 2.8.0 发布版。 | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.0.15  |  版本更新为 Greengrass Nucleus 版本 2.6.0 发布版。  | 
|  2.0.14  |  此版本包含错误修复和改进。  | 
|  2.0.13  |  版本更新为 Greengrass Nucleus 版本 2.5.0 发布版。  | 
| 2.0.12 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  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  |  初始版本。  | 