【问题标题】:Change AWS Lambda Kinesis stream polling frequency更改 AWS Lambda Kinesis 流轮询频率
【发布时间】:2018-04-06 06:52:12
【问题描述】:

我想更改 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

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-kinesis


    【解决方案1】:

    据我所知,如果您使用事件源映射,现在可以降低轮询频率。

    这些都是你可以设置的设置(来源: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 函数在退出之前休眠,这样它只会在所需时间后再次轮询。但这当然意味着你要为此付出代价。所以这可能是不希望的。

    【讨论】:

    • 你能分享一个手动轮询事件源映射的函数示例吗?
    【解决方案2】:

    我还没有看到降低轮询频率的方法,但是您可以通过增加 MaximumBatchingWindowInSeconds 参数来获得与降低轮询频率相同的效果。

    参考:https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html#sam-function-kinesis-maximumbatchingwindowinseconds

    假设您的新记录平均以 1 条记录/秒的速度到达。无论 BatchSize 是多少,您的 lambda 都可能每秒触发一次,因为它每秒轮询一次。但是,如果您将 BatchSize 增加到 60 并将 MaximumBatchingWindowInSeconds 增加到 60,那么您的 lambda 平均每分钟仅调用一次,就好像您已将轮询频率更改为每分钟一次一样。 p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      • 2018-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多