Amazon web services 运动分析目的地指南:Lambda vs运动流至Lambda

Amazon web services 运动分析目的地指南:Lambda vs运动流至Lambda,amazon-web-services,aws-lambda,amazon-kinesis,Amazon Web Services,Aws Lambda,Amazon Kinesis,在Kinesis Analytics完成其工作后,下一步是将该信息发送到目的地。AWS目前提供3种目的地选择: 运动流 消防水带输送流 AWS Lambda函数 就我的用例而言,Kinesis消防软管输送流不是我想要的,因此我只剩下: 运动流 AWS Lambda函数 如果我将目的地设置为一个Kinesis流,那么我将向该流附加一个Lambda来处理记录 AWS还提供将目的地设置为Lambda的功能,绕过此过程中的“运动流”步骤。在对文档进行挖掘时,我发现: 特别是在Lambda输出调

在Kinesis Analytics完成其工作后,下一步是将该信息发送到目的地。AWS目前提供3种目的地选择:

  • 运动流
  • 消防水带输送流
  • AWS Lambda函数
就我的用例而言,Kinesis消防软管输送流不是我想要的,因此我只剩下:

  • 运动流
  • AWS Lambda函数
如果我将目的地设置为一个Kinesis流,那么我将向该流附加一个Lambda来处理记录

AWS还提供将目的地设置为Lambda的功能,绕过此过程中的“运动流”步骤。在对文档进行挖掘时,我发现:

特别是在Lambda输出调用频率下的那些文档中,它说:

如果记录以连续查询或滑动窗口的形式发送到data analytics应用程序内应用程序流中的目标,则大约每秒调用一次AWS Lambda destination函数

我的运动分析输出符合此场景。所以我可以假设我的Lambda将被调用,“大约每秒一次”

我试图理解使用这两个目的地之间的区别,因为它与使用Lambda有关

声明:

您可以订阅Lambda函数,以自动从您的Kinesis流中读取批量记录,并在流中检测到记录时对其进行处理。AWS Lambda然后定期(每秒一次)轮询流以查找新记录

所以这听起来像是两种情况下的调用间隔是相同的;大约1秒

因此,我认为指导原则是:

如果管道中的下一阶段只需要一个使用者,则使用AWS Lambda函数destination。但是,如果您需要使用多个不同的使用者对发送到目的地的相同数据执行不同的操作,则动觉流更合适

对于如何选择目的地,这是正确的假设吗?同样,对于我的用例,我排除了Kinesis消防软管输送流

如果管道中的下一阶段只需要一个使用者,则使用AWS Lambda函数destination。但是,如果您需要使用多个不同的使用者对发送到目的地的相同数据执行不同的操作,则动觉流更合适

•如果我希望在没有并发的情况下一个一个地消费项目,我总是使用带有一个碎片和批大小=1(例如)的Kinesis流

如果有多个消费者,增加碎片的数量,当有项目要处理时,将为每个碎片并行启动一个lambda。如果有意义,还可以增加批量大小

但请再次阅读下面突出显示的短语:

但是,如果您需要使用多个不同的使用者对发送到目的地的相同数据执行不同的操作,则动觉流更合适

如果你有一个或多个生产者和许多消费者完全相同的项目,我想你需要使用SNS。制作人将项目写在一个主题上,然后所有收听该主题的lambda将处理该项目


如果这不能回答您的问题,请澄清。有点模棱两可。

啊。。。我实际上不知道它为每个碎片分配1个lambda。我认为Lambda是在函数的并发限制或全局限制用尽之前触发的。我在kinesis文档中再也找不到引用,但我经常使用该功能。一个碎片=>一个lambda。我经常使用Kinesis Streams作为具有有限数量使用者的实时流的消息队列。