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.json
dependencies 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.json
dependencies 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-layer
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
Gets you logging in your terminal
build-layer <dir> --debug
Just build you a directory
build-layer <dir> --noZip
Build 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