Build Lambda Layer
![Github](https://badgen.net/badge/icon/github?icon=github&label&color=black)
Builds Awesome Node Lambda Layers with Control! 🕹
Build Lambda Layer is a small utility CLI for building Lambda Layers with control for AWS Node Lambda projects.
Why is this written?
Build Lambda Layer takes all complexity out of building lambda layers.
By running:
build-layer my-lambda-layer
Build Lambda Layer will:
- install all root
package.json
dependencies to your my-lambda-layer
lambda layer, and - zip it up to be uploaded to AWS 🚀
Additionally, 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 your package.json
file, you can specify packages to ignore
and include
:
{
"buildLambda": {
"ignore": ["@types/aws-lambda"],
"include": {
"aws-lambda": "latest"
}
}
}
You can 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 <my-dependencies>.json
file to your project root:
{
"dependencies": {
"aws-lambda": "latest"
}
}
And run:
build-layer my-lambda-layer --files '<my-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
Customer 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 and have the AWS CLI
build-layer <dir> --bucket <bucket> --runtimes [runtimes...] --architectures [architectures...]
Made by @yowainwright for fun with passion! MIT, 2022