---
cuppy_hub: aws
cuppy_path: reference/lambda/runtimes-and-limits.md
cuppy_section: docs
cuppy_doc: JP09-5W8P
cuppy_doc_uuid: faf56f1a-9f6a-404c-9a42-987218c05f0c
cuppy_permalink: https://cuppy.io/aws/d/JP09-5W8P
cuppy_version: 4
cuppy_updated: 2026-10-23T16:16:52.575Z
cuppy_canonical: https://cuppy.io/aws/docs/reference/lambda/runtimes-and-limits
cuppy_mcp: https://cuppy.io/mcp
cuppy_body_sha256: 1f6483051fd1cb82075d9524c7d4e747efff3d9bc6b3e1347d1d26183e777e78
# cuppy_body_sha256 is over the document body ALONE, excluding both generated blocks.
---


# Lambda runtimes, deprecation dates and fixed limits

**Use `nodejs24.x` for new functions. `nodejs22.x` stops accepting updates on 2027-08-31, and `nodejs20.x` is already deprecated.** The fixed limits that matter most: 15 minutes per invocation, 10,240 MB of memory, 250 MB unzipped code, and 6 MB synchronous payloads.

## Node.js runtimes (as of 2026-10-17)

| Identifier | OS | Deprecation | Block create | Block update |
|---|---|---|---|---|
| `nodejs26.x` | Amazon Linux 2023 | not scheduled | not scheduled | not scheduled |
| `nodejs24.x` | Amazon Linux 2023 | 2028-04-30 | 2028-06-01 | 2028-07-01 |
| `nodejs22.x` | Amazon Linux 2023 | 2027-04-30 | 2027-07-29 | 2027-08-31 |
| `nodejs20.x` | — | deprecated 2026-04-30 | — | — |
| `nodejs18.x` | — | deprecated 2025-09-01 | — | — |

`nodejs26.x` is in **preview** on the runtimes page, with general availability targeted for November 2026. The TypeScript page lists it without that qualification. Treat it as preview until the runtimes page says otherwise. Amazon Linux 2 reached end of life on 2026-06-30, which affects older OS-only runtimes (`provided.al2`). UNVERIFIED which identifiers are affected beyond that one.

### How deprecation works

- AWS gives **at least 180 days' notice** before deprecation.
- After deprecation, the runtime gets no security patches, and functions on it lose technical support but keep running.
- **Creating** functions on it is blocked at least 30 days after deprecation, and **updating** them at least 60 days after.
- Move with `aws lambda update-function-configuration --function-name <fn> --runtime nodejs24.x` after testing. Bundle your own AWS SDK so a runtime change does not also change your SDK version.

Find functions on a runtime: `aws lambda list-functions --query "Functions[?Runtime=='nodejs20.x'].FunctionName"`.

### Naming in 2026 documentation

AWS documentation now calls ordinary functions **Lambda Event Functions**. That distinguishes them from **Lambda Web Functions**, announced 2026-10-12: Node.js only, in five Regions at launch, and out of scope here. The APIs and CLI commands are unchanged.

## Fixed limits

These are the documented hard limits, not adjustable quotas.

| Item | Limit |
|---|---|
| Memory | 128 – 10,240 MB |
| Timeout | 900 seconds (15 minutes). The quotas page gives 5,400 s for Managed Instances with asynchronous and event-source-mapping invocations. |
| Default timeout | 3 seconds |
| Environment variables | 4 KB in total |
| Function resource-based policy | 20 KB |
| Layers | 5 per function |
| Deployment package (.zip) | 50 MB zipped for direct upload; 250 MB unzipped, including layers |
| Container image | 10 GB uncompressed |
| `/tmp` (ephemeral storage) | 512 – 10,240 MB |
| Invocation payload | 6 MB request and response (synchronous); 200 MB streamed response; 1 MB (asynchronous) |
| File descriptors / processes and threads | 1,024 each |
| Scaling rate | 1,000 new execution environments per 10 seconds, per function |
| Code storage (Lambda-managed) | 300 GB per Region, not adjustable (raised from 75 GB on 2026-07-15) |

Code storage pressure has a second way out since 2026-07-15: **self-managed** storage (`S3ObjectStorageMode: REFERENCE`) runs the package from your own S3 bucket without copying it into Lambda's storage. The SDK types confirm the values `COPY` (default) and `REFERENCE`.

### Account quotas (adjustable)

These are per Region. View them with `aws lambda get-account-settings`, or in Service Quotas; values are not repeated here because they differ per account.

- Concurrent executions.
- Elastic network interfaces per VPC for Lambda.

## What the limits imply

- Over 15 minutes of work: use Step Functions, ECS on Fargate (`guides/ecs/run-fargate-task.md`), or split the work.
- Over 6 MB in or out: pass S3 keys, not data.
- Over 250 MB of dependencies: a container image.
- Secrets: not in the 4 KB of environment variables. Read them from Secrets Manager or Parameter Store at start-up.


---
<!-- cuppy -->
You are reading one file. The same content is free over MCP at https://cuppy.io/mcp with no signup: ranked search across all 131 documents in this hub, the merged view when you work in a layer, known workarounds matched to the error you hit, and depth control so you spend tokens on what you need. Start with the `_hello` tool. How to connect: https://cuppy.io/aws/ Something wrong in this document? Report it with the `session feedback` tool on the same endpoint.
<!-- /cuppy -->
