

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

# 配置 AWS IoT Greengrass 流管理器
<a name="configure-stream-manager"></a>

在 Greengrass 核心设备上，流管理器可以存储、处理和导出 IoT 设备数据。流管理器提供用于配置运行时设置的参数。这些设置适用于 Greengrass 核心设备上的所有流。部署组件时，您可以使用 AWS IoT Greengrass 控制台或 API 配置流管理器设置。更改会在部署完成后生效。

## 流管理器参数
<a name="stream-manager-parameters"></a>

流管理器提供以下参数，您可以在将组件部署到核心设备时配置这些参数。所有参数都是可选的。

**存储目录**  <a name="STREAM_MANAGER_STORE_ROOT_DIR"></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
```
有关保护流数据安全的信息，请参阅[本地数据安全性](manage-data-streams.md#stream-manager-security-stream-data)。  
默认值：`/greengrass/v2/work/aws.greengrass.StreamManager`

**服务器端口**  
参数名称: `STREAM_MANAGER_SERVER_PORT`  
用于与流管理器通信的本地端口号。默认值为 `8088`。  
您可以指定 `0` 来使用随机可用端口。

**验证客户端身份**  <a name="STREAM_MANAGER_AUTHENTICATE_CLIENT"></a>
参数名称: `STREAM_MANAGER_AUTHENTICATE_CLIENT`  
指示客户端是否必须通过身份验证才能与流管理器交互。客户端和流管理器之间的所有交互都由流管理器 SDK 控制。此参数用于确定哪些客户端可以调用流管理器 SDK 来处理流。有关更多信息，请参阅 [客户端身份验证](manage-data-streams.md#stream-manager-security-client-authentication)。  
有效值为 `true` 或 `false`。默认值为 `true`（推荐）。  
+ `true`。仅允许 Greengrass 组件作为客户端。组件使用内部 AWS IoT Greengrass Core 协议对流管理器 SDK 进行身份验证。
+ `false`。允许在 AWS IoT Greengrass Core 上运行的任何进程成为客户端。除非您的业务案例需要，否则请勿将值设置为 `false`。例如，仅当核心设备上的非组件进程必须直接与流管理器通信时，才使用 `false`。

**最大带宽**  
参数名称: `STREAM_MANAGER_EXPORTER_MAX_BANDWIDTH`  
可用于导出数据的平均最大带宽（以千位/秒为单位）。默认设置允许无限制使用可用带宽。

**线程池大小**  
参数名称: `STREAM_MANAGER_EXPORTER_THREAD_POOL_SIZE`  
可用于导出数据的最大活动线程数。默认值为 `5`。  
最佳大小取决于您的硬件、流的量和计划的导出流数量。如果导出速度较慢，您可以调整此设置以找出适合您的硬件和业务案例的最佳大小。核心设备硬件的 CPU 和内存是限制因素。首先，您可以尝试将此值设置为等于设备上的处理器核心数。  
请注意，不要设置大于硬件可以支持的大小。每个流都会消耗硬件资源，因此请尝试限制受约束设备上的导出流的数量。

**JVM 参数**  
参数名称: `JVM_ARGS`  
在启动时传递给流管理器的自定义 Java 虚拟机参数。多个参数应该用空格分隔。  
仅当您必须覆盖 JVM 使用的默认设置时才使用此参数。例如，如果计划导出大量的流，则可能需要增加默认堆大小。

**Logging level（日志记录级别**  
参数名称: `LOG_LEVEL`  
组件的日志记录级别。从以下日志级别中选择，此处按级别顺序列出：  
+ `TRACE`
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
默认值：`INFO`

**分段上传的最小大小**  <a name="stream-manager-minimum-part-size"></a>
参数名称: `STREAM_MANAGER_EXPORTER_S3_DESTINATION_MULTIPART_UPLOAD_MIN_PART_SIZE_BYTES`  
向 Amazon S3 进行分段上传的分段最小大小（以字节为单位）。流管理器使用此设置和输入文件的大小来确定如何对多部分 PUT 请求中的数据进行批处理。默认最小值为 `5242880` 字节 (5 MB)。  
流管理器使用流的 `sizeThresholdForMultipartUploadBytes` 属性来确定是以单段上传还是分段上传的形式导出到 Amazon S3。用户定义的 Greengrass 组件在创建导出到 Amazon S3 的流时会设置此阈值。默认阈值为 5 MB。

## 另请参阅
<a name="configure-stream-manager-see-also"></a>
+ [管理 Greengrass 核心设备上的数据流](manage-data-streams.md)
+ [StreamManagerClient 用于处理直播](work-with-streams.md)
+ [导出支持的 AWS Cloud 目标的配置](stream-export-configurations.md)