# Script to delete all Lambda Layers in an AWS account.
# Get a list of all Lambda Layer versions. We use --query and --output text to get a clean list.
layer_versions=$(aws lambda list-layer-versions --query 'LayerVersions[*].LayerVersionArn' --output text --layer-name layer-name)
# Check if any layers exist.
if [[ -z "$layer_versions" ]]; then
echo "No Lambda Layers found in this account."
layer_versions_array=($(echo "$layer_versions" | tr '\n' ' '))
# Iterate through each layer version ARN.
for layer_version in "${layer_versions_array[@]}"; do
# Extract the LayerName and Version from the ARN. This is a bit tricky, but works reliably.
# Example ARN: arn:aws:lambda:us-east-1:123456789012:layer:my-layer:1
layer_name=$(echo "$layer_version" | cut -d: -f7) # Extract "my-layer"
version=$(echo "$layer_version" | cut -d: -f8) # Extract "1"
# Delete the layer version.
echo "Deleting Layer: $layer_name, Version: $version"
aws lambda delete-layer-version --layer-name "$layer_name" --version-number "$version"
# Check for errors. Important!
echo "Error deleting layer: $layer_name, Version: $version"
# You might want to add more sophisticated error handling here, like logging or retries.
# For now, the script continues, but you'll see the error message.
echo "Finished deleting Lambda Layers."