Build Lambda Layer is a utility CLI for building AWS Lambda Layers with control for AWS Node Lambda projects.
Build Lambda Layer takes complexity out of building lambda layers!
+ Monorepo support
+ The ability to ignore and add dependencies at run time
+ Easy json configuration!
By running:
build-layer <your-lambda-layer>Build Lambda Layer will:
- install all package.jsondependencies to<your-lambda-layer>, and
- zip it up to be uploaded to AWS ๐
A key additional feature that Build Lambda Layer provides is that it works with monorepos!
By running:
build-layer my-lambda-layer --files 'packages/**/package.json'Build Lambda Layer will:
- install all package/**/package.jsondependencies to your lambda layer, and
- zip it up to be uploaded to AWS
Build Lambda Layer supports specificity with ignore and include options.
By adding a "lambdaLayer" object to a package.json file you're building from, you can specify packages to ignore and include:
{
  "buildLambda": {
    "ignore": ["@types/aws-lambda"],
    "include": {
      "aws-lambda": "latest"
    }
  }
}You can also add a lambdaLayerrc file to your project root if you want to preserve your package.json file.
{
  "ignore": ["@types/aws-lambda"],
  "include": {
    "aws-lambda": "latest"
  }
}There is nothing stopping you from creating your own dependency object to install.
Add a <your-dependencies>.json file to your project root:
{
  "dependencies": {
    "aws-lambda": "latest"
  }
}And run:
build-layer my-lambda-layer --files '<your-dependencies>.json'That's it! ๐
Save yourself the time and effort of building Lambda Layers and let Build Lambda Layer do it for you!
pnpm install build-lambda-layerUsage: build-layer [options] <dir>
Build Lambda Layer, Build node awesome lambda layers with controls ๐น
Arguments:
  dir                                 lambda layer directory to build to
Options:
  --architectures [architectures...]  architectures for deployment to AWS
  --bucket <bucket>                   bucket to deploy to using AWS
  -c, --config <config>               path to a config file
  --deploy                            deploy your lambda layer
  -n, --name <name>                   lambda layer name
  --debug                             enable debugging
  -f, --files [files...]              file glob pattern
  -i, --ignore [ignore...]            ignore glob pattern
  --isTesting                         enable running fn tests w/o overwriting
  --noZip                             don't zip lambda layer
  -o, --output <output>               output path
  -r, --rootDir <rootDir>             root directory to start search
  --runner <runner>                   npm, pnpm, or yarn
  --runtimes [runtimes...]            runtimes for deployment to AWS
  -t, --isTestingCLI                  enable CLI only testing
  -h, --help                          display help for commandGets you logging in your terminal
build-layer <dir> --debugJust build you a directory
build-layer <dir> --noZipBuild everything with a runner besides npm. Options are npm, pnpm, or yarn
build-layer <dir> --runner 'pnpm'Assumes you're authenticated, have the AWS CLI, and have already deployed the layer to S3. AKA, implemented but not actively guaranteed to work!
build-layer <dir> --bucket <bucket> --runtimes [runtimes...] --architectures [architectures...]
Made by @yowainwright for fun with passion! MIT, 2022