Package: layermake
LAYERMAKElayermake is a CLI tool for creating AWS Lambda layerslayermake currently supports creating python, NodeJS, and binary layers.RequirementsCurrently layermake has only been tested on Python >= 3.8Installation:Install from pypi:pip install layermakeor install from source:git clone or download this repository and install with:pipinstall.The binary should now be installed and can be invoked with:layermake COMMAND [ARGS]Usage:runlayermakewith one of the following commands:nodejspythonbinarylayermake nodejsandlayermake pythonsupport fully interactive layer building if no
arguments are passed.All commands share the following options:-n, --name TEXT                 layer name
  -l, --license TEXT              text to include in the license field of the layer
  --license-file TEXT             file containing license info to include in the license field of the layer
  -a, --arch [x86_64|arm64]       architectures this layer is compatible with
  --profile TEXT                  AWS profile to use when publishing
  -d, --description TEXT          description of the layer
  -v, --verbose                   verbose output
  -q, --quiet                     quiet output. Only display errors and warnings. Turn off animations.
  --no-publish                    do not publish the layer, only bundle.
  --no-zip                        do not publish the layer, and do not zip the bundled layer.NodeJS bundlingTo interactively bundle a NodeJS layer with defaults use:layermake nodejsAll NodeJS bundling options as displayed withlayermake nodejs --helpTo use a package.json file use the option--manifestor-m:layermakenodejs-n"my nodejs layer"-r14.x-mpackage.jsonUsage: layermake nodejs [OPTIONS] [PACKAGES]...

Options:
  -n, --name TEXT            layer name
  -l, --license TEXT         text to include in the license field of the layer
  --license-file TEXT        file containing license info to include in the license field of the layer
  -a, --arch [x86_64|arm64]  architectures this layer is compatible with
  --profile TEXT             AWS profile to use
  -d, --description TEXT     description of the layer
  -v, --verbose              verbose output
  -q, --quiet                    quiet output. Only display errors and warnings. Turn off animations.
  --no-publish               do not publish the layer, only bundle.
  --no-zip                   do not publish the layer, and do not zip the bundled layer.
  -r, --runtime TEXT         nodejs runtime
  -m, --manifest TEXT        nodejs manifest file (package.json)
  -o, --output TEXT          target output directory  [default: layer]
  --container TEXT           use the provided docker container to build the layer
  --dir TEXT                 directory containing artifacts to bundle into a layer
  --help                     Show this message and exit.Python bundlingTo interactively bundle a Python layer with defaults use:layermake pythonAll Python bundling options as displayed withlayermake python --helpUsage: layermake python [OPTIONS] [PACKAGES]...

Options:
  -n, --name TEXT            layer name
  -l, --license TEXT         text to include in the license field of the layer
  --license-file TEXT        file containing license info to include in the license field of the layer
  -a, --arch [x86_64|arm64]  architectures this layer is compatible with
  --profile TEXT             AWS profile to use
  -d, --description TEXT     description of the layer
  -v, --verbose              verbose output
  -q, --quiet                    quiet output. Only display errors and warnings. Turn off animations.
  --no-publish               do not publish the layer, only bundle.
  --no-zip                   do not publish the layer, and do not zip the bundled layer.
  -r, --runtime TEXT         python runtime
  -m, --manifest TEXT        python manifest file (requirements.txt)
  -o, --output TEXT          target output directory  [default: layer]
  --dir TEXT                 directory containing artifacts to bundle into a layer
  --container TEXT           use the provided docker container to build the layer
  --help                     Show this message and exit.Binary bundlingBinary bundling requires an argument specifying either a build script or a directory
where either a makefile exists or one ofbuild,install,layer,build-layerexists
(with or without a.shfile extensions). If none of these files are provided, you may
pass a custom container command to run instead (e.g./bin/bash my_script.sh).When bundling a binary layer, the build script is responsible for installing
libraries and binaries inside/opt/binand/or/opt/lib. These directories
are zipped inside Docker after running the build script.Currently, only Docker images that provideyumpackage manager are supported asyumis used to install build tools in the base image (defaults toamazonlinux:latest)To add any prerequisite packages not installed by the build script use the--packagesflag to have them installed before bundling.Example:layermakebinary-n'GnuPG 2.8'-pzlibgnupg-build.shUsage: layermake binary [OPTIONS] [ARTIFACT]...

Options:
  -n, --name TEXT                 layer name
  -l, --license TEXT              text to include in the license field of the layer
  --license-file TEXT             file containing license info to include in the license field of the layer
  -a, --arch [x86_64|arm64]       architectures this layer is compatible with
  --profile TEXT                  AWS profile to use
  -d, --description TEXT          description of the layer
  -v, --verbose                   verbose output
  -q, --quiet                         quiet output. Only display errors and warnings. Turn off animations.
  --no-publish                    do not publish the layer, only bundle.
  --no-zip                        do not publish the layer, and do not zip the bundled layer.
  --dockerfile TEXT               use the provided dockerfile for bundling
  -o, --output TEXT               target output directory  [default: layer]
  -w, --workdir TEXT              workdir used when bundling inside the container  [default: /opt]
  -c, --cmd TEXT                  command executed inside the container; defaults to executing the build artifact with /bin/bash
  --base-image TEXT               use the provided base docker image when compiling the Dockerfile for lambda bundling
                                  [default: amazonlinux:latest]
  -p, --packages TEXT             additional packages to install in the container; currently only yum is supported
  -r, --runtimes [nodejs|nodejs4.3|nodejs6.10|nodejs8.10|nodejs10.x|nodejs12.x|nodejs14.x|nodejs16.x|java8|java8.al2|java11|python2.7|python3.6|python3.7|python3.8|python3.9|dotnetcore1.0|dotnetcore2.0|dotnetcore2.1|dotnetcore3.1|dotnet6|nodejs4.3-edge|go1.x|ruby2.5|ruby2.7|provided|provided.al2|nodejs18.x|all] compatible runtimes
  --help                          Show this message and exit.Todo:comprehensive unit testingrust supportjava support