@beesley/push-function-zips
v2.2.1
Published
Zips up and uploads build artifacts for serverless functions
Downloads
165
Readme
@beesley/push-function-zips
Zips up and uploads build artifacts for serverless functions
usage
cli
Typically this module would be used from the command line. The command line args are described here.
| Argument | Description | Type | Required? | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ----------- | | --help | Show help | [boolean] | | | --version | Show version number | [boolean] | | | --inputPath | The path to the lambda code and node_modules | [string] | [required] | | --include | An array of globs defining what to bundle | [array] | [required] | | --exclude | An array of globs defining what not to bundle | [array] | | | --rootDir | An optional path within the zip to save the files to | [string] | | | --regions | A list of regions to upload the assets in | [array] | [required] | | --buckets | A list of buckets to upload to (same order as the regions please) | [array] | [required] | | --functionKey | The path/filename of the zip file in the bucket (you don't need to add the .zip extension, but remember to include a version string of some sort) | [string] | [required] | | --layerKey | Tells the module to split out the node modules into a zip that you can create a lambda layer from | [string] | | | --versionSuffix | An optional string to append to layer and function keys to use as a version indicator | [string] | | | --platform | Which cloud provider we are uploading to (AWS or GCP) | [string] | |
npx @beesley/push-function-zips --inputPath './' --include 'dist/**' --regions 'eu-central-1' --buckets 'my-lambda-artefacts' --functionKey 'hello-function' --layerKey 'hello-function-dependencies' --platform 'AWS' --versionSuffix '1.0.0'
programmatic
It is possible to use this module programmatically if you so desire.
import { packageAndUpload } from '@beesley/push-function-zips';
await packageAndUpload({
inputPath: './',
include: ['dist/**'],
createLayer: true,
region: 'eu-central-1',
bucket: 'my-lambda-artefacts',
functionKey: 'hello-function',
layerKey: 'hello-function-dependencies',
});
API
Table of Contents
Options
Options to define an upload task
Type: {inputPath: string, include: Array<string>?, exclude: Array<string>?, createLayer: boolean?, rootDir: string?, region: string, bucket: string, functionKey: string, layerKey: string?, project: string?, platform: Platform}
Properties
inputPath
stringinclude
Array<string>?exclude
Array<string>?createLayer
boolean?rootDir
string?region
stringbucket
stringfunctionKey
stringlayerKey
string?project
string?platform
Platform
inputPath
A pointer to where the files to upload are located
Type: string
include
An array of globs to include in the zip
exclude
An array of globs to exclude from the zip
createLayer
Whether or not to create a layer zip
Type: boolean
rootDir
A position within the zip to mount the files
Type: string
region
The AWS region to upload the assets to
Type: string
bucket
The name of the S3 bucket to upload to
Type: string
functionKey
The key name to upload the function zip as
Type: string
layerKey
The key name to upload the layer as
Type: string
project
The name of a google project to upload to
Type: string
platform
The target we're uploading to
Type: Platform
packageAndUpload
src/package-and-upload.ts:15-33
Packages up an asset based on globs and uploads zips to storage
Parameters
arg
Options Configuration defining what to upload to where
Returns any {Promise}