serverless-lifecycle
v1.0.6
Published
Run package.json scripts on serverless hook events
Downloads
48
Maintainers
Readme
Serverless Lifecycle
This Serverless plugin allows triggering execution of npm scripts when serverless events are fired.
Simply declare npm scripts with a name of the form lifecycle:EVENT
where EVENT
is
the name of a serverless hook event, i.e.:
lifecycle:before:offline:start:init
: Run script before serverless offline launches. This can be particularly useful to setup the local environment, such as launching a local kinesis and initializing it by creating some streams.lifecycle:offline:start:ready
: Run post-startup script, e.g. seed s3 files.lifecycle:after:offline:start
: Run cleanup scripts after serverless offline terminates.lifecycle:before:package:initialize
: Run script before the packaging initialization.
Installation
First, add the plugin to your project:
npm install --save-dev serverless-lifecycle
Then, inside your project's serverless.yml
file add serverless-lifecycle
to the top-level
plugins section. If there is no plugin section you will need to add it to the file.
plugins:
- serverless-lifecycle
Configuration
Plugin behavior may be configured by adding keys to the serverless-lifecycle
section in the
top-level custom section.
These are the configuration entries and their default values:
custom:
serverless-livecycle:
hookPrefix: lifecycle # The npm script prefix to indicate a serverless hook script
Execution
When scripts are executed, the environment variable SLS_CONTEXT
contains a path to
a JSON file with the contents of the serverless
object. The available properties are:
- invocationId: Unique GUID for the current serverless invocation
- version: Serverless framework version
- cliCommands: Array with provided CLI commands (e.g. [ 'offline' ])
- cliOptions: Object with provided CLI options
- servicePath: Path to directory containing serverless.yml file
- service: Object with contents of resolved serverless.yml file