是否可以达到Lambda调用限制(10000)而没有达到其并发限制(1000)?

时间:2019-07-01 07:55:45

标签: amazon-web-services aws-lambda

通过默认,Lambda并发执行限制为1000,调用为(* 10 * current_execution_limit *)10,000。 https://docs.aws.amazon.com/lambda/latest/dg/limits.html

调用限制如何以及何时生效?如果我在给定的时间内用1个帐户总共调用了1001个函数,那么它将产生一个节流错误,因为1000个函数将处于活动状态,那么在永远无法达到时设置一个调用限制有什么意义呢?我的理解正确吗?如何在不打扰并发限制的情况下达到调用限制?

1 个答案:

答案 0 :(得分:1)

调用频率限制是每秒允许调用该函数的请求数的限制。

对于同步调用,仅当函数完成执行的时间少于1/10 s = 100 ms时,才可以超过此限制,因为在这种情况下,您可以调用超过每秒10,000个请求,同时仍不超过1,000个并发。如果您的函数运行时间超过100毫秒,则每秒不能超过10,000次调用,因为并发限制将使此操作变得不可能。

对于异步调用,您可以更容易地超过调用频率限制,因为异步调用返回响应而无需等待函数实际运行-丢弃该函数的返回值。 Lambda使请求入队,并以最大并发性运行它们,但不会接受超出调用频率限制的速率。