Amazon web services AWS Firehose数据转换并发限制

Amazon web services AWS Firehose数据转换并发限制,amazon-web-services,lambda,aws-lambda,amazon-kinesis-firehose,Amazon Web Services,Lambda,Aws Lambda,Amazon Kinesis Firehose,我有一个用例,在这个用例中,我必须每秒从不同的制作人那里收集数千条记录,并使用AWS firehose将它们推到弹性搜索。我还在firehose上使用数据转换lambda,它在将记录传递回firehose之前进行了大量计算 Firehose应该在数据再次缓冲以交付到目标之前,异步调用每个缓冲批的lambda 我以每秒4k记录的进入率运行了15分钟的基本测试,下面是系统的响应方式 查看firehose指标,很明显firehose花了一个多小时来处理所有传入事件。由于没有任何lambda节流

我有一个用例,在这个用例中,我必须每秒从不同的制作人那里收集数千条记录,并使用AWS firehose将它们推到弹性搜索。我还在firehose上使用数据转换lambda,它在将记录传递回firehose之前进行了大量计算

Firehose应该在数据再次缓冲以交付到目标之前,异步调用每个缓冲批的lambda

我以每秒4k记录的进入率运行了15分钟的基本测试,下面是系统的响应方式

查看firehose指标,很明显firehose花了一个多小时来处理所有传入事件。由于没有任何lambda节流阀(图2),所以我想知道为什么Firehose没有运行尽可能多的lambda以跟上输入速率

如第二个图所示,我每分钟有30次lambda调用,平均处理时间为8000ms


所以我想知道消防水管是否同时运行lambda?是否有我缺少的firehose lambda并发限制?

原则上,每个lambda eventsource将与1个lambda实例关联。这是为了确保处理的数据顺序正确

如果您希望以不保证数据具有正确顺序为代价来增加吞吐量,那么可以从lambda函数内部使用“InvokeAsync”(传递相同的参数)。通过这种方式,您可以第二次调用lambda,这次是异步的,这将增加预期的吞吐量


在这里可以找到一篇详细介绍类似问题的博文:

lambda是否在VPC中运行?我这么问是因为我还没有做过lambda消防软管集成。如果是,那么可能您的VPC中没有足够的ENIs可用?不,它不是在VPCThanks中运行的。对于您的答案,我看到了这篇博文,但是异步调用lambda不适用于我的用例,因为我需要将事件推回firehoseKinesis流,每个碎片将有一个lambda实例,也许这是一种提高吞吐量的方法?否则,联系支持人员可能是您的最佳选择