Lambda 扩展行为
当您的函数收到更多请求时,Lambda 会自动纵向扩展执行环境的数量来处理这些请求,直到账户达到其并发限额。但是,为了防止因突然的流量爆发而出现过度扩展,Lambda 限制了函数的扩展速度。此并发扩展速率是您账户中的函数在应对增加的请求时可以扩展的最大速率。(也就是 Lambda 创建新执行环境的速度。) 并发扩展速率不同于账户级别的并发限制,后者是函数可用的并发总量。
并发扩展速率
在每个 Amazon Web Services 区域 中,对于每个函数,您的并发扩展速率为每 10 秒 1000 个执行环境实例(或每 10 秒 10000 个请求)。换句话说,每 10 秒 Lambda 最多可以为每个函数分配 1000 个额外的执行环境实例,或者每秒满足 10000 个额外的请求。
通常,您无需关注此限制。Lambda 的扩展速率足以满足大多数用例的需求。
重要的是,并发扩展速率是函数级别的限制。这意味着您账户中的每个函数可以独立于其他函数进行扩展。
注意
实际上,Lambda 会尽最大努力随着时间的推移持续重新填充您的并发扩展速率,而不是每隔 10 秒一次填充 1,000 个单位。
Lambda 不会累积并发扩展速率中未使用的部分。这意味着,无论在任何时候,扩展速率的最大值始终为 1,000 个并发单位。例如,如果您在 10 秒间隔内没有使用可用的 1,000 个并发单元中的任何一个,则在下一个 10 秒间隔内,不会累加 1,000 个额外的单位。在下一个 10 秒间隔内,您的并发扩展速率仍为 1,000。
只要您的函数继续收到越来越多的请求,Lambda 就会以您可用的最快速率进行扩展,直至达到账户的并发限制。您可以通过配置预留并发来限制单个函数可以使用的并发数量。如果请求进入的速度超过函数可扩展的速度,或者如果函数处于最大并发,则其他请求会因节流错误而失败(状态代码为 429)。