我想更改AWS Lambda函数的Kinesis流轮询频率。我正在阅读这篇文章: https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html 但是,没有运气。 它传达的唯一信息是 AWS Lambda然后定期(每秒一次)轮询流以获取新记录。
我也在寻找线程中的答案,但没有运气: https://forums.aws.amazon.com/thread.jspa?threadID=229037
还有另一种选择,如果需要所需的频率,可以使用它: https://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events.html
所以,我的问题是,我们能否将AWS Lambda的轮询频率降低到1-2分钟?或者我们是否必须使用 AWS Lambda with Scheduled Events ?
答案 0 :(得分:0)
据我所知,如果您使用事件源映射,现在可以降低轮询频率。
这些是您可以设置的所有设置(来源:https://docs.aws.amazon.com/de_de/lambda/latest/dg/API_CreateEventSourceMapping.html):
{
"BatchSize": number,
"Enabled": boolean,
"EventSourceArn": "string",
"FunctionName": "string",
"StartingPosition": "string",
"StartingPositionTimestamp": number
}
因此,进行预定事件似乎是唯一可行的选择。 一种替代方法是让lambda函数在退出之前进入休眠状态,以便仅在所需时间后再次轮询。但这当然意味着您要为此付费。.因此,这可能是不希望的。
答案 1 :(得分:0)
我还没有一种降低轮询频率的方法,但是可以起到与增加 MaximumBatchingWindowInSeconds 参数来降低轮询频率相同的效果。
假设您有新记录,平均速度为1条记录/秒。无论BatchSize如何,您的lambda每秒都会轮询一次,因此可能每秒触发一次。但是,如果您将BatchSize设置为60,并将 MaximumBatchingWindowInSeconds 设置为60,则lambda平均每分钟仅调用一次,就好像您将轮询频率更改为每分钟一次。>