

# Lambda 配额
<a name="gettingstarted-limits"></a>

**重要**  
新的 Amazon Web Services 账户减少了 Lambda 函数和 Lambda MicroVM 并发配额和内存配额。Amazon 将根据您的使用情况自动提高这些配额。

Amazon Lambda 旨在快速扩展以满足需求，从而允许您的函数纵向扩展以服务应用程序中的流量。Lambda 专为不保留或依赖于调用之间状态的短期计算任务而设计。代码在单次调用中最多可以运行 15 分钟（对于以异步方式或通过除 Amazon MQ 和 Amazon DocumentDB 之外的任何事件源映射调用的 Lambda 托管实例函数，最多可运行 90 分钟），并且单一函数最多可使用 10,240 MB 的内存。

请务必了解为保护您的账户和其他客户的工作负载而设置的护栏。服务配额存在于所有 Amazon 服务中，包括硬限制（您无法更改）和软限制（您可以请求增加）。默认情况下，所有新账户都分配有一个允许探索 Amazon 服务的配额配置文件。

要查看适用于您账户的配额，请导航到[服务配额控制面板](https://console.amazonaws.cn/servicequotas/home)。您能够在此处查看服务配额、请求增加服务配额，以及查看当前利用率。从这里，您可以深入了解特定的 Amazon 服务，例如 Lambda：

![服务配额控制台显示 Lambda 配额及当前利用率。](https://docs.amazonaws.cn/lambda/latest/dg/images/application-design-figure-1.png)


以下部分按类别列出了 Lambda 中的默认配额和限制。

**Topics**
+ [计算和存储](#compute-and-storage)
+ [函数配置、部署和执行](#function-configuration-deployment-and-execution)
+ [Lambda API 请求](#api-requests)
+ [持久性函数](#durable-functions-quotas)
+ [Lambda MicroVMs](#microvms-quotas)
+ [其他服务](#quotas-other-services)

## 计算和存储
<a name="compute-and-storage"></a>

Lambda 为可用来运行和存储函数的计算和存储资源量设置配额。并发执行和存储限额按 Amazon Web Services 区域适用。弹性网络接口（ENI）限额按虚拟私有云（VPC）适用，不按区域适用。以下限额可以在默认值的基础上增加。有关更多信息，请参阅 *Service Quotas 用户指南*中的[请求增加配额](https://docs.amazonaws.cn/servicequotas/latest/userguide/request-quota-increase.html)。


| 资源 | 默认配额 | 最多可增加到 | 
| --- | --- | --- | 
| 并发执行 | 1000 | 数十万 | 
| 用于上传的函数（.zip 文件存档）和使用 Lambda 托管式存储的层的存储。每个函数版本和层版本都会消耗存储。<br />为避免存储限制，您可以将函数和层配置为改为使用[自行管理的 S3 代码存储](configuration-self-managed-storage.md)。<br /> 有关管理代码存储的最佳实践，请参阅 Serverless Land 中的 [Monitoring Lambda code storage](https://serverlessland.com/content/service/lambda/guides/aws-lambda-operator-guide/code-storage)。 | 300 GB（未压缩） | 不可增加。对于超出此限制的存储，建议使用[自行管理的 S3 代码存储](configuration-self-managed-storage.md)。 | 
| 用于定义为容器映像的函数的存储 这些映像存储在 Amazon ECR 中。 | 请参阅 [Amazon ECR 服务限额](https://docs.amazonaws.cn/AmazonECR/latest/userguide/service-quotas.html)。 |   | 
| [每个虚拟私有云（VPC）的弹性网络接口](configuration-vpc.md) 此配额与其他服务（如 Amazon Elastic File System (Amazon EFS)）共享。请参阅 [Amazon VPC 配额](https://docs.amazonaws.cn/vpc/latest/userguide/amazon-vpc-limits.html)。  | 3000 | 千 | 

有关并发以及 Lambda 如何根据流量扩展函数并发的详细信息，请参阅 [了解 Lambda 函数扩展](lambda-concurrency.md)。

## 函数配置、部署和执行
<a name="function-configuration-deployment-and-execution"></a>

以下配额适用于函数配置、部署和执行。除非另有说明，否则无法对其进行更改。

**注意**  
Lambda 文档、日志消息和控制台中使用缩写 MB（而不是 MiB）来表示 1024 KB。


| 资源 | 配额 | 
| --- | --- | 
| 函数[内存分配](configuration-memory.md) | 128 MB 到 10240 MB，以 1 MB 为增量。<br />**注意**：Lambda 根据配置的内存量按比例分配 CPU 处理能力。您可通过**内存（MB）**设置，调整分配给函数的内存和 CPU 处理能力。大小为 1769MB 时，函数的处理能力与一个 vCPU 等效。 | 
| 函数超时 | 900 秒（15 分钟）。对于使用 Amazon Lambda 托管实例的函数，异步调用和事件源映射调用（Amazon MQ 和 Amazon DocumentDB 除外）支持的最大允许值为 5,400 秒（90 分钟）。 | 
| 函数[环境变量](configuration-envvars.md) | 对于与函数关联的所有环境变量总共为 4 KB | 
| 函数[基于资源的策略](access-control-resource-based.md) | 20 KB | 
| 函数[层](chapter-layers.md) | 5 层 | 
| 函数[并发扩展限制](scaling-behavior.md) | 对于每个函数，每 10 秒 1,000 个执行环境 | 
| [调用负载](lambda-invocation.md)（请求和响应） | 请求和响应各为 6 MB（同步）<br />每个[流式处理响应](configuration-response-streaming.md) 200MB（同步）<br />1 MB（异步）<br />请求行和标头值的总组合大小为 1MB | 
| [流式处理响应](configuration-response-streaming.md)的带宽 | 函数响应的前 6MB 无上限<br />对于大于 6MB 的响应，其余响应为 2Mbps | 
| 每个执行环境的网络带宽 | 625 Mbps。对于未附加到 VPC 的函数，您可以通过[服务配额控制台](https://console.amazonaws.cn/servicequotas/home/services/lambda/quotas)申请增加配额。获得批准后，网络带宽与内存成比例扩展，起始内存为 2048 MB，在 10240 MB 时最高可达 3000 Mbps。 | 
| [部署程序包（.zip 文件存档）](configuration-function-zip.md)大小 | 50 MB（通过 Lambda API 或软件开发工具包上传时已压缩）。上载较大文件请使用 Amazon S3。<br />50 MB（通过 Lambda 控制台上传时）<br />250 MB 部署包内容的最大大小，包括层和自定义运行时。（已解压缩）<br /> | 
| 容器映像设置大小 | 16 KB | 
| [容器映像](images-create.md)代码包大小 | 10GB（最大未压缩图像大小，包括所有图层） | 
| 测试事件（控制台编辑器） | 10 | 
| `/tmp` 目录存储 | 介于 512 MB 与 10,240 MB 之间，以 1 MB 为增量 | 
| 文件描述符 | 1024 Lambda 托管实例使用更高的文档描述符限制（4,096）。有关更多信息，请参阅 [了解 Lambda 托管实例执行环境](lambda-managed-instances-execution-environment.md)。  | 
| 执行进程/线程 | 1024 Lambda 托管实例使用 [Bottlerocket](https://www.amazonaws.cn/bottlerocket/) 中的默认进程和线程限制。有关更多信息，请参阅 [了解 Lambda 托管实例执行环境](lambda-managed-instances-execution-environment.md)。  | 

## Lambda API 请求
<a name="api-requests"></a>

以下配额与 Lambda API 请求相关联。


| 资源 | 限额 | 
| --- | --- | 
| 每个区域的每个函数的调用请求数（同步） | 您的执行环境的每个实例每秒最多处理 10 个请求。换言之，总调用限制是并发限制的 10 倍。请参阅[了解 Lambda 函数扩展](lambda-concurrency.md)。 | 
| 每个区域的每个函数的调用请求数（异步） | 您的执行环境的每个实例都可以处理无限数量的请求。换言之，总调用限制仅基于函数可用的并发。请参阅 [了解 Lambda 函数扩展](lambda-concurrency.md)。 | 
| 每个函数版本或别名的调用请求数（每秒请求数） | 10 x 分配的[预配置并发](configuration-concurrency.md) 此配额仅适用于使用预置并发的函数。  | 
| [GetFunction](https://docs.amazonaws.cn/lambda/latest/api/API_GetFunction.html) API 请求 | 每秒 100 个请求。无法增加。 | 
| [GetPolicy](https://docs.amazonaws.cn/lambda/latest/api/API_GetPolicy.html) API 请求 | 每秒 15 个请求。无法增加。 | 
| 控制面板 API 请求的剩余部分（不包括调用、GetFunction 和 GetPolicy 请求） | 所有 API 每秒 15 个请求（而不是每个 API 每秒 15 个请求）。无法增加。 | 

## 持久性函数
<a name="durable-functions-quotas"></a>

以下配额适用于[持久性函数](durable-functions.md)。限额按 Amazon Web Services 区域应用。如表所示，美国东部（弗吉尼亚州北部）、美国西部（俄勒冈州）和欧洲地区（爱尔兰）适用更高的默认配额。除非另有说明，否则可以增加这些配额。有关更多信息，请参阅 *Service Quotas 用户指南*中的[请求增加配额](https://docs.amazonaws.cn/servicequotas/latest/userguide/request-quota-increase.html)。


| 资源 | 默认配额 | 
| --- | --- | 
| 最大运行持久执行数 | 每个区域 500 万个。<br />美国东部（弗吉尼亚州北部）、美国西部（俄勒冈州）和欧洲地区（爱尔兰）为 1000 万个请求。<br />这是一项软性限制，可以增加。 | 
| 每次持久执行的最大持久操作数 | 3000<br />无法增加。有关更多信息，请参阅[可用的持久操作](durable-execution-sdk.md#durable-sdk-operations)。 | 
| 持久执行存储写入量（MB） | 100 MB<br />无法增加。持久性函数每次执行的持久化累计有效载荷大小。有关更多信息，请参阅[每次持久操作的持久化数据](durable-execution-sdk.md#durable-operations-checkpoint-consumption)。 | 
| 用于启动持久执行的函数调用速率 | 每秒 300 个请求。 | 
| [CheckpointDurableExecution](https://docs.amazonaws.cn/lambda/latest/api/API_CheckpointDurableExecution.html) API 请求 | 每秒 10,000 个请求<br />美国东部（弗吉尼亚州北部）、美国西部（俄勒冈州）和欧洲地区（爱尔兰）为每秒 2 万个请求。 | 
| [GetDurableExecution](https://docs.amazonaws.cn/lambda/latest/api/API_GetDurableExecution.html) API 请求 | 每秒 30 个请求。 | 
| [GetDurableExecutionHistory](https://docs.amazonaws.cn/lambda/latest/api/API_GetDurableExecutionHistory.html) API 请求 | 每秒 15 个请求。 | 
| [GetDurableExecutionState](https://docs.amazonaws.cn/lambda/latest/api/API_GetDurableExecutionState.html) API 请求 | 每秒 10,000 个请求<br />美国东部（弗吉尼亚州北部）、美国西部（俄勒冈州）和欧洲地区（爱尔兰）为每秒 2 万个请求。 | 
| [ListDurableExecutionsByFunction](https://docs.amazonaws.cn/lambda/latest/api/API_ListDurableExecutionsByFunction.html) API 请求 | 每秒 15 个请求。 | 
| [SendDurableExecutionCallbackFailure](https://docs.amazonaws.cn/lambda/latest/api/API_SendDurableExecutionCallbackFailure.html) API 请求 | 每秒 3,000 个请求<br />美国东部（弗吉尼亚州北部）、美国西部（俄勒冈州）和欧洲地区（爱尔兰）为每秒 6000 个请求。 | 
| [SendDurableExecutionCallbackHeartbeat](https://docs.amazonaws.cn/lambda/latest/api/API_SendDurableExecutionCallbackHeartbeat.html) API 请求 | 每秒 3,000 个请求<br />美国东部（弗吉尼亚州北部）、美国西部（俄勒冈州）和欧洲地区（爱尔兰）为每秒 6000 个请求。 | 
| [SendDurableExecutionCallbackSuccess](https://docs.amazonaws.cn/lambda/latest/api/API_SendDurableExecutionCallbackSuccess.html) API 请求 | 每秒 3,000 个请求<br />美国东部（弗吉尼亚州北部）、美国西部（俄勒冈州）和欧洲地区（爱尔兰）为每秒 6000 个请求。 | 
| [StopDurableExecution](https://docs.amazonaws.cn/lambda/latest/api/API_StopDurableExecution.html) API 请求 | 每秒 300 个请求。<br />美国东部（弗吉尼亚州北部）、美国西部（俄勒冈州）和欧洲地区（爱尔兰）为每秒 600 个请求。 | 

## Lambda MicroVMs
<a name="microvms-quotas"></a>

Lambda MicroVMs 会设置计算、存储和 API 请求的配额。可通过服务配额控制台增加标记为可调整的配额。

**注意**  
Lambda MicroVMs 支持 ARM64（Amazon Graviton）架构。

### 计算和存储
<a name="microvms-quotas-compute"></a>


| 资源 | 默认配额 | 可调整 | 
| --- | --- | --- | 
| 跨所有 MicroVM 分配的内存（每账户、每区域） | 400 GB（即每个配置 2 GB 内存的 MicroVM 200 个或每个配置 1 GB 内存的 MicroVM 400 个）。<br />美国东部（弗吉尼亚州北部）、美国西部（俄勒冈州）、美国东部（俄亥俄州）以及亚太地区（东京）为 1024 GB（即每个配置 2 GB 内存的 MicroVM 512 个或每个配置 1 GB 内存的 MicroVM 1024 个）。<br />最高可突增至此配额的四倍。 | 是 | 
| 每 MicroVM 最大执行时长 | 8 小时（28800 秒） | 否 | 

### 映像数和版本数
<a name="microvms-quotas-images"></a>


| 资源 | 默认配额 | 可调整 | 
| --- | --- | --- | 
| 每区域每账户 MicroVM 映像数 | 100 | 是 | 
| 每个 MicroVM 映像的版本数 | 50 | 可以 | 
| 并发映像构建数（每账户、每区域） | 5<br />美国东部（弗吉尼亚州北部）、美国西部（俄勒冈州）、美国东部（俄亥俄州）和亚太地区（东京）10 个 | 是 | 

### 每 MicroVM 吞吐量
<a name="microvms-quotas-throughput"></a>


| 资源 | 限制 | 可调整 | 
| --- | --- | --- | 
| 每 MicroVM 并发连接数 | 8（1 个 vCPU）、16（2 个 vCPU）、32（4 个 vCPU）、64（8 个 vCPU）、128（16 个 vCPU） | 否 | 
| 每 MicroVM 每秒请求数 | 40（4 个 vCPU/8 GB）、160（16 个 vCPU/32 GB） | 否 | 

### API 速率限制
<a name="microvms-quotas-api"></a>


| API 操作 | 速率（TPS） | 突增 | 可调整 | 
| --- | --- | --- | --- | 
| RunMicrovm | 5 | 5 | 是 | 
| ResumeMicrovm | 5 | 5 | 是 | 
| SuspendMicrovm | 2 | 2 | 可以 | 
| TerminateMicrovm | 10 | 10 | 是 | 
| GetMicrovm | 100 | 100 | 是 | 
| CreateMicrovmAuthToken | 50 | 50 | 可以 | 
| CreateMicrovmShellAuthToken | 5 | 5 | 是 | 

**注意**  
TPS = 每秒事务数。这些速率限制是每账户每区域的限制。使用带抖动的指数回退重试被节流的请求。

## 其他服务
<a name="quotas-other-services"></a>

其他服务（如 Amazon Identity and Access Management (IAM)、Amazon CloudFront (Lambda@Edge) 和 Amazon Virtual Private Cloud (Amazon VPC)）的配额可能会影响您的 Lambda 函数。有关更多信息，请参阅《*Amazon Web Services 一般参考*》中的 [Amazon Web Services 服务 限额](https://docs.amazonaws.cn/general/latest/gr/aws_service_limits.html)，以及 [使用来自其 Amazon 他服务的事件调用 Lambda](lambda-services.md)。

许多涉及 Lambda 的应用程序都使用多种 Amazon 服务。由于不同的服务对各种功能有不同的配额，在整个应用程序中管理这些配额可能很困难。例如，API Gateway 的默认节流限制为每秒 10000 个请求，而 Lambda 的默认并发限制为 1000 个。由于这种不匹配，来自 API Gateway 的传入请求数可能会超过 Lambda 能够处理的上限。您可以通过请求提高 Lambda 并发限制以匹配预期的流量水平来解决这个问题。

对应用程序进行负载测试有助于您在部署到生产环境之前端到端监控应用程序的性能。在负载测试期间，您可以识别可能成为预期流量级别限制因素的任何配额，并采取相应的措施。