Skip to content

yowainwright/build-lambda-layer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Build Lambda Layer

Typed with TypeScript ci npm Github

Builds Awesome Node Lambda Layers with Control! ๐Ÿ•น

Build Lambda Layer is a utility CLI for building AWS Lambda Layers with control for AWS Node Lambda projects.


Why is this written?

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!


How does it does it work?

By running:

build-layer <your-lambda-layer>

Build Lambda Layer will:

  • install all package.json dependencies to <your-lambda-layer>, and
  • zip it up to be uploaded to AWS ๐Ÿš€

Additionally, Build Lambda Layer works with monorepos!

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.json dependencies to your lambda layer, and
  • zip it up to be uploaded to AWS

Ignore and include the dependencies you want!

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"
  }
}

Be really selective with your installs

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!


Install

pnpm install build-lambda-layer

CLI API

Usage: 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 command

Recipes

Debugging

Gets you logging in your terminal

build-layer <dir> --debug
No Zip

Just build you a directory

build-layer <dir> --noZip
Custom runner

Build everything with a runner besides npm. Options are npm, pnpm, or yarn

build-layer <dir> --runner 'pnpm'
AWS Deploy

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

About

Build awesome node lambda layers with control ๐Ÿ•น

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •