Skip to main content

CLI tool for creating and publishing AWS Lambda layers for Node.js and Python.

Project description

AWS Lambda Layer CLI Tool

A command-line tool for creating and publishing AWS Lambda layers for Node.js and Python.

Features

  • Effortless Publishing: Create and publish Node.js and Python layers in a single command
  • Smart Compatibility: Auto-selects the right Linux binaries for Amazon Linux 2 or 2023
  • Cross-Architecture: Native support for x86_64 and arm64 builds
  • Auto-Versioning: Automatically handles layer naming and version increments

Installation

Package Managers (Recommended)

npm (Node.js)

npm i -g aws-lambda-layer-cli

uv (Python)

uv tool install aws-lambda-layer-cli

Requirements

  • System: Linux, macOS, or Windows (WSL recommended)
  • Tools: zip, aws-cli (for publishing), node (for Node.js layers), python (for Python layers)

Usage

aws-lambda-layer-cli <command> [options]

Commands

  • zip: Create a local zip file
  • publish: Create and publish a layer to AWS
  • completion: Generate shell completion scripts
  • uninstall: Uninstall the tool
  • help: Show help message

Options

Option Description
--nodejs, -n <pkgs> Create Node.js layer (comma-separated packages)
--python, -p <pkgs> Create Python layer (comma-separated packages)
--wheel, -w <file> Use with --python to create layer from .whl file
--name Custom layer name
--description Layer description (publish only)
--profile AWS CLI profile (publish only)
--region AWS region (publish only)
--architecture, -a Target architecture (x86_64 or arm64)
--node-version Node.js version (default: 24)
--python-version Python version (default: 3.14)
-v, --version Show version

Examples

Node.js

# Create local zip with multiple packages
aws-lambda-layer-cli zip --nodejs express@4.18.2,axios --name my-layer

# Publish to AWS with specific profile and region
aws-lambda-layer-cli publish --nodejs lodash --profile prod --region us-east-1 --description "Utils"

Python

# Create local zip with specific python version and architecture
aws-lambda-layer-cli zip --python numpy==1.26.0,pandas --python-version 3.12 --architecture arm64

# Publish to AWS for ARM64 architecture
aws-lambda-layer-cli publish --python requests --name web-layer --architecture arm64

Note: This tool automatically selects the optimal platform based on the Python version:

  • Python 3.12+ (Amazon Linux 2023): Targets manylinux_2_28 (GLIBC 2.28+)
  • Python 3.11- (Amazon Linux 2): Targets manylinux2014 (GLIBC 2.17+)

Wheel File

The tool auto-detects Python version and architecture from the wheel filename.

# Create local zip from wheel (preferred syntax)
aws-lambda-layer-cli zip --python --wheel numpy-2.4.1-cp313-cp313-manylinux.whl

# Publish directly from wheel
aws-lambda-layer-cli publish --python --wheel pandas-2.1.0-cp311-...-x86_64.whl

Note: For wheels, arguments like --python-version or --architecture are checked against the wheel metadata. If they conflict, the tool will error to prevent incompatibility.

Shell Completion

Add to your shell config (~/.bashrc or ~/.zshrc):

# Bash
source <(aws-lambda-layer-cli completion --bash)

# Zsh
source <(aws-lambda-layer-cli completion --zsh)

License

MIT License

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aws_lambda_layer_cli-2.2.0.tar.gz (26.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aws_lambda_layer_cli-2.2.0-py3-none-any.whl (32.9 kB view details)

Uploaded Python 3

File details

Details for the file aws_lambda_layer_cli-2.2.0.tar.gz.

File metadata

  • Download URL: aws_lambda_layer_cli-2.2.0.tar.gz
  • Upload date:
  • Size: 26.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for aws_lambda_layer_cli-2.2.0.tar.gz
Algorithm Hash digest
SHA256 c3c21cc05246b4f213d930db059cd91cc865d3aa69afd9b249641c94577212d6
MD5 c1111e8a97cb9ad87c3a6ce6c4122672
BLAKE2b-256 82b905d97e33ba287b386b6737c73d95f7888cc7c8f5fc41e4c47ca7bbb412ae

See more details on using hashes here.

File details

Details for the file aws_lambda_layer_cli-2.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for aws_lambda_layer_cli-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 00de652eecd8dcce08a54861c21587d5640638fc826e901e395481e9141c6015
MD5 b56e071c869166930ff3a821e22cd886
BLAKE2b-256 4f2a3518ebca18bd1e23d8cdbf785f6719c06118fe3d74bf02e48f47a553dab3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page