配置预留并发
在 Lambda 中,并发是指您的函数可以同时处理的请求数。有两种类型的并发控件可用:
-
预留并发 – 预留并发保证了函数的最大并发实例数。当一个函数有预留并发时,任何其他函数都不可以使用该并发。为函数配置预留并发不收取任何费用。
-
预配置并发 – 预配置并发可初始化请求数量的执行环境,使其准备好立即响应函数的调用。请注意,配置预置并发会让您的 Amazon 账户产生费用。
本主题详细介绍了如何管理和配置预留并发。如果要减少函数的延迟,可使用预置并发。
并发性 是您的函数在任何给定时间所服务的请求的数目。调用函数时,Lambda 会分配一个实例来处理事件。当函数代码完成运行时,它会处理另一个请求。如果当仍在处理请求时再次调用函数,则分配另一个实例,从而增加该函数的并发。您账户中所有函数的总并发性受每个区域配额的限制。
配置预留并发
要管理函数的预留并发设置,请使用 Lambda 控制台。
要为函数预留并发性
打开 Lamba 控制台的 Functions
(函数)页面。 -
选择函数。
-
选择 Configuration(配置),然后选择 Concurrency(并发)。
-
在并发下,选择编辑。
-
选择预留并发。输入要为该函数预留的并发数量。
-
选择 Save(保存)。
您最多可以预留所显示的 Unreserved account concurrency (未预留账户并发) 值;对于没有预留并发的函数,可预留的并发数量为该值减去 100。要限制函数,请将预留并发设置为零。这将停止处理任何事件,直到您删除限制。
以下示例显示了两个具有预留并发池的函数,以及其他函数使用的非预留并发池。当池中的所有并发都已使用时,会出现限制错误。

图例
-
函数并发
-
预留并发
-
非预留并发
-
限制
预留并发具有以下效果。
-
其他函数无法阻止您的函数扩缩 – 在没有预留并发的同一区域中,您所有账户的函数共享未预留并发的池。如果没有预留并发,其他函数可能会耗尽所有可用的并发,从而导致您的函数无法根据需要进行扩展。
-
您的函数不能无节制地横向扩展 – 预留并发还限制您的函数使用非预留池中的并发数量,从而限制了其最大并发数量。您可以预留并发以防止您的函数使用该区域中的所有可用并发,或者防止下游资源过载。
设置每函数并发会影响可用于其他函数的并发池。为避免出现问题,请限制可以使用 PutFunctionConcurrency
和 DeleteFunctionConcurrency
API 操作的用户数量。
使用 Lambda API 配置并发
要使用 Amazon CLI 或 Amazon SDK 管理并发设置,请使用以下 API 操作。
要使用 Amazon CLI 配置预留并发,请使用 put-function-concurrency
命令。以下命令为名为 my-function
的函数预留 100 的并发:
aws lambda put-function-concurrency --function-name my-function --reserved-concurrent-executions 100
您应看到以下输出:
{ "ReservedConcurrentExecutions": 100 }