Package Exports
- build-lambda-layer
Readme
Build Lambda Layer
Builds Awesome Node Lambda Layers with Control! 🕹
Build Lambda Layer is a utility CLI for building Lambda Layers with control for AWS Node Lambda projects.
Why is this written?
Build Lambda Layer takes complexity out of building lambda layers so lambda layers.
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!
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