本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理 Greengrass 核心设备上的数据流
AWS IoT Greengrass 流管理器可以更高效、更可靠地将大容量 IoT 数据传输到 AWS Cloud。流管理器先在 AWS IoT Greengrass Core 上处理数据流,然后将其导出到 AWS Cloud。流管理器与常见的边缘场景集成,例如机器学习(ML)推理,在将数据导出到 AWS Cloud 或本地存储目标之前,AWS IoT Greengrass Core 设备会先在其中处理和分析数据。
流管理器提供了一个通用接口,可简化自定义组件的开发,让您无需构建自定义流管理功能。您的组件可以使用标准化机制来处理高容量流并管理本地数据留存策略。您可以为每个流定义存储类型、大小和数据留存策略,来控制流管理器处理和导出数据的方式。
流管理器在间歇性或有限连接的环境中工作。您可以定义带宽使用、超时行为以及当 AWS IoT Greengrass Core 连接或断开连接时如何处理流数据。您还可以设置优先级来控制 AWS IoT Greengrass Core 将流导出到 AWS Cloud 的顺序。这让您能够先于其他数据,更快地处理关键数据。
您可以配置流管理器自动将数据导出到 AWS Cloud 以便存储和进行进一步处理和分析。流管理器支持导出到以下 AWS Cloud 目标:
-
AWS IoT Analytics 中的频道。AWS IoT Analytics 允许您对数据进行高级分析,以帮助做出业务决策和改进机器学习模型。有关更多信息,请参阅《AWS IoT Analytics 用户指南》中的什么是 AWS IoT Analytics?。
-
Amazon Kinesis Data Streams 中的流。您可以使用 Kinesis Data Streams 来聚合大量数据并将其加载到数据仓库或 MapReduce 集群中。有关更多信息,请参阅 Amazon Kinesis Data Streams 开发人员指南 中的什么是 Amazon Kinesis Data Streams?。
-
AWS IoT SiteWise 中的资产属性。AWS IoT SiteWise 允许您大规模收集、整理和分析来自工业设备的数据。有关更多信息,请参阅《AWS IoT SiteWise 用户指南》中的什么是 AWS IoT SiteWise?。
-
Amazon Simple Storage Service(Amazon S3)中的对象 您可以使用 Amazon S3 存储和检索大量的数据。有关更多信息,请参阅《Amazon Simple Storage Service 开发人员指南》中的什么是 Amazon S3?。
流管理工作流
您的 IoT 应用程序通过流管理器 SDK 与流管理器交互。
在简单工作流中,AWS IoT Greengrass Core 上的组件会消耗 IoT 数据,如时间序列温度和压力指标。组件可能会过滤或压缩数据,然后调用流管理器 SDK 以将数据写入流管理器中的流。流管理器可以根据您定义的流策略,自动将流导出到 AWS Cloud。组件还可以将数据直接发送到本地数据库或存储库。
您的 IoT 应用程序可以包含多个用于读取或写入流的自定义组件。这些组件可以读取和写入流,以便过滤、聚合和分析 AWS IoT Greengrass 核心设备上的数据。这样可以在数据从核心传输到 AWS Cloud 或本地目的地之前快速响应本地事件并提取有价值的信息。
首先,将流管理器组件部署到您的 AWS IoT Greengrass 核心设备。在部署中,配置流管理器组件参数来定义应用于 Greengrass 核心设备上的所有流的设置。使用这些参数来根据业务需求和环境约束控制流管理器存储、处理和导出流的方式。
配置流管理器后,您可以创建和部署 IoT 应用程序。这些通常是自定义组件,它们在流管理器 SDK 中使用 StreamManagerClient 来创建流并与之交互。在创建流时,您可以定义每个流的策略,例如导出目标、优先级和持久性。
要求
以下要求适用于使用流管理器:
-
除了 AWS IoT Greengrass Core 软件之外,流管理器还需要至少 70 MB 的 RAM。您的总内存需求取决于您的工作负载。
-
AWS IoT Greengrass 组件必须使用流管理器 SDK 与流管理器交互。流管理器 SDK 可用于以下语言:
-
适用于 Java 的流管理器 SDK
(v1.1.0 或更高版本) -
适用于 Node.js 的流管理器 SDK
(v1.1.0 或更高版本) -
适用于 Python 的流管理器 SDK
(v1.1.0 或更高版本)
-
-
AWS IoT Greengrass 组件必须在其配方中将流管理器组件 (
aws.greengrass.StreamManager) 指定为依赖关系才能使用流管理器。注意
如果您使用流管理器将数据导出到云端,则无法将流管理器组件 2.0.7 版本升级到 v2.0.8 到 v2.0.11 之间的版本。如果您是首次部署流管理器,我们强烈建议您部署最新版本的流管理器组件。
-
如果您为流定义 AWS Cloud 导出目标,则必须创建导出目标并授予 Greengrass 设备角色的访问权限。根据不同的目的地,也可能适用其他要求。有关更多信息,请参阅:
由您来负责维护这些 AWS Cloud 资源。
数据安全性
使用流管理器时,请注意以下安全注意事项。
本地数据安全性
AWS IoT Greengrass 不会在核心设备上的本地组件之间进行静态或传输中流数据加密。
-
静态数据。流数据存储在本地存储在存储目录中。为了保证数据安全,AWS IoT Greengrass 依赖文件权限和全磁盘加密(如果启用)。您可以使用可选的 STREAM_MANAGER_STORE_ROOT_DIR 参数指定存储目录。如果稍后将此参数更改为使用其他存储目录,AWS IoT Greengrass 不会删除以前的存储目录或其内容。
-
本地传输中数据。AWS IoT Greengrass 不加密数据源、AWS IoT Greengrass 组件、流管理器 SDK 和流管理器之间的本地传输流数据。
-
传输到 AWS Cloud 的数据。流管理器导出到 AWS Cloud 的数据流使用带传输层安全性 (TLS) 的标准 AWS 服务客户端加密。
客户端身份验证
流管理器客户端使用流管理器 SDK 与流管理器通信。启用客户端身份验证后,只有 Greengrass 组件才能与流管理器中的流交互。禁用客户端身份验证时,Greengrass 核心设备上运行的任何进程都可以与流管理器中的流交互。只有在您的业务案例需要时才应禁用身份验证。
您可以使用 STREAM_MANAGER_AUTHENTICATE_CLIENT 参数来设置客户端身份验证模式。您可以在将流管理器组件部署到核心设备时配置此参数。
| 已启用 | 已禁用 | |
|---|---|---|
参数值 |
|
|
允许的客户端 |
核心设备上的 Greengrass 组件 |
核心设备上的 Greengrass 组件 Greengrass 核心设备上运行的其他进程 |