AWS Lambda
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Lambda 函数的预留并发

您可以配置具有预留并发的函数,以保证它始终可以达到一定的并发级别。预留并发还限制了函数的最大并发数量。

要为函数预留并发性

  1. 打开 Lambda 控制台 函数页面

  2. 选择函数。

  3. Conccurrency (并发) 中,选择 Reserve concurrency (预留并发)

  4. 输入要为该函数预留的并发数量。

  5. 选择 Save

您最多可以预留所显示的 Unreserved account concurrency (未预留账户并发) 值;对于没有预留并发的函数,可预留的并发数量为该值减去 100。将预留并发设置为 0 以限制所有调用。

预留并发具有以下效果。

  • 其他函数无法阻止您的函数扩展 – 在没有预留并发的同一区域中,您所有账户的函数共享未预留并发的池。如果没有预留并发,其他函数可能会耗尽所有可用的并发数量,从而导致您的函数无法根据需要进行扩展。

  • 您的函数不能无节制地扩展 – 预留并发还限制您的函数使用非预留池中的并发数量,从而限制了它的最大并发数量。预留并发数量以防止您的函数使用该区域中的所有可用并发数量,或者防止下游资源重载。

并发限制只能在函数级别上设置,不能针对单个版本设置。对给定函数的所有版本和别名的所有调用都会计入函数限制。

使用 Lambda API 配置并发

要为函数配置预留并发,请使用 put-function-concurrency 命令。

$ aws lambda put-function-concurrency --function-name my-function --reserved-concurrent-executions 100

要删除预留并发,请使用 delete-function-concurrency

$ aws lambda delete-function-concurrency --function-name my-function

要查看函数的预留并发,请使用 get-function

$ aws lambda get-function --function-name my-function

要查看您的账户在某个区域中的并发限制,请使用 get-account-settings

$ aws lambda get-account-settings { "AccountLimit": { "TotalCodeSize": 80530636800, "CodeSizeUnzipped": 262144000, "CodeSizeZipped": 52428800, "ConcurrentExecutions": 1000, "UnreservedConcurrentExecutions": 984 }, "AccountUsage": { "TotalCodeSize": 174913095, "FunctionCount": 52 } }

上述命令对应于以下 API 操作。

设置每函数并发会影响可用于其他函数的并发池。建议您仅将 PutFunctionConcurrency 和 DeleteFunctionConcurrency 的权限分配给管理用户,以便限制可进行这些更改的用户的数目。