JSPM

aws-lambda-layer-cli

2.2.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3
  • Score
    100M100P100Q78588F
  • License MIT

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

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (aws-lambda-layer-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    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

    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.