docs/sf/providers/aws/guide/prune.md
Lambda version pruning is built into the Serverless Framework. Thanks to Clay Gregory and contributors for the original serverless-prune-plugin.
AWS Lambda retains all published versions of your functions. Over time, this can:
The prune feature automatically removes old versions while keeping a configurable number of recent versions.
Add the prune section to your custom block:
custom:
prune:
automatic: true # Prune after each deploy
number: 3 # Keep 3 most recent versions
includeLayers: true # Also prune layer versions
| Option | Type | Default | Description |
|---|---|---|---|
automatic | boolean | false | Enable automatic pruning after deploy |
number | integer | - | Number of versions to keep (required for automatic) |
includeLayers | boolean | false | Include Lambda layers in pruning |
Use the prune command to manually clean up versions:
# Keep 5 most recent versions
serverless prune -n 5
# Preview what would be deleted
serverless prune -n 3 --dryRun --verbose
# Prune a specific function
serverless prune -n 3 -f myFunction
# Prune layers only
serverless prune -n 3 -l myLayer
# Prune functions and layers
serverless prune -n 3 --includeLayers
Versions that are referenced by Lambda aliases will never be deleted, regardless of the number setting. This ensures stable deployments and traffic shifting configurations remain intact.
Use --dryRun with --verbose to preview what would be deleted:
serverless prune -n 3 --dryRun --verbose
Output:
Prune: myFunction:4 selected for deletion.
Prune: myFunction:3 selected for deletion.
Prune: Dry-run enabled, no pruning actions will be performed.