【问题标题】:CloudWatch event Lambda trigger and concurrencyCloudWatch 事件 Lambda 触发器和并发
【发布时间】:2020-05-08 01:04:59
【问题描述】:

如果 Lambda 函数的并发数>1,并且有多个实例正在运行,是否会向所有正在运行的实例发送 CloudWatch 事件 Lambda 触发器?

【问题讨论】:

  • 如果您询问是否有 10 个 lambdas 并发运行,CloudWatch 事件是否会触发它们全部再次执行该函数,那么答案是否定的......该事件只会触发一次执行。 .. 并发是函数有多少同时执行。如果您需要其中 10 个同时运行,则需要在逻辑上构建它。

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


【解决方案1】:

问题的措辞有点模棱两可。我会尽力把它说得更清楚。

如果一个 Lambda 函数有一个并发>1,并且有多个实例在运行

我认为 OP 是在谈论保留并发,它设置为大于 1 的值。换句话说,该函数默认情况下不受限制,并且可以并行运行多个实例。

是否会将 CloudWatch 事件 Lambda 触发器发送到所有正在运行的实例?

这部分是模棱两可的。 @hephalump 在问题评论中提供了一种解释。

我有另一种解释。如果你问的是当前运行的 lambda 容器在工作完成后是否会被复用,那么答案如下:

根据@hephalump 的评论,现在很明显一个 CloudWatch 事件只会触发一个 lambda 实例运行。如果短时间内出现多个事件,则会触发多个 lambda 实例并行运行。回到问题,如果该函数的所有现有 lambda 实例都忙于运行,则不会重用任何容器,并且将启动另一个新的 lambda 实例来处理此事件。如果其中一个正在运行的实例刚刚完成其工作,则该容器以及执行环境将被重新用于处理来自 CloudWatch 的传入事件。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-03
    • 2019-11-18
    • 2019-10-24
    • 1970-01-01
    • 2020-10-21
    • 2020-04-15
    • 2018-02-26
    • 1970-01-01
    相关资源
    最近更新 更多