背景
我正在学习AWS Kinesis、API网关技术。
我明白,每当请求到达API网关时,我可以将数据转发到一个流中,或者选择触发一个Lambda(它将执行一些处理)。
想法和疑问
所以,我的想法是,如果我可以直接从API网关触发Lambda(请求到达时实时),那么拥有Kinesis流(用于实时数据处理)的优势是什么呢?
我可以删除流,并直接从API网关触发Lambda(甚至为不同的任务创建多个API)。
在这种情况下,有什么想法!
背景
我正在学习AWS Kinesis、API网关技术。
我明白,每当请求到达API网关时,我可以将数据转发到一个流中,或者选择触发一个Lambda(它将执行一些处理)。
想法和疑问
所以,我的想法是,如果我可以直接从API网关触发Lambda(请求到达时实时),那么拥有Kinesis流(用于实时数据处理)的优势是什么呢?
我可以删除流,并直接从API网关触发Lambda(甚至为不同的任务创建多个API)。
在这种情况下,有什么想法!
Kinesis Streams 基本上提供了一个时间窗口来访问大量数据。它负责存储该数据足够长的时间,以便您可以挑选相关数据或执行聚合操作。您对数据的分析可以存储在数据库中。当存储所有传入数据都不必要且会成本高昂时,Kinesis Streams 是一个不错的选择。
Kinesis Firehose 为您提供了一个端点,让您将数据发送到 S3、Redshift 或 Elastic Search(或某些组合)。然后,您可以在存储的数据上执行分析。如果您只想让原始数据最终进入数据库以供以后处理,这是一个不错的选择。但是,您需要为该数据的存储付费。如果您只需要数据的子集或分析结果,则会产生成本。
API Gateway 到 Lambda 允许您实时处理数据。Lambda 可以对数据进行任何操作,此解决方案具有最大的灵活性。但是,您必须逐个处理每个请求,而 Kinesis Streams 可以分析一批数据。