Drop to a runtime shell with all the environment variables set that you'd have in lambda.
A Serverless v1.x plugin to drop to a local shell with your environment
npm install --save serverless-shell
Add the plugin and set some env vars in your
provider: name: aws environment: SOME_VAR: foobar plugins: - serverless-shell
Example in a python project
$ serverless shell Serverless: Spawning python3.6... Python 3.6.1 (default, Mar 22 2017, 06:17:05) [GCC 6.3.0 20170321] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> os.environ['SOME_VAR'] 'foobar'
and in a NodeJS project:
$ serverless shell Serverless: Spawning node... > process.env.SHELL 'foobar'
Since the main reason for building this was to test code with the configs for various stages, it supports properly building the environment. For example:
$ serverless -s staging shell -f status
If you want to launch a different shell than the runtime's default, you can
specify that with in the
custom section of your config. This can be used
to for things like using
babel-node instead of
node or even dropping to
bash with the right env vars set.
custom: shellBinary: babel-node
This feature can also be activated by a CLI switch:
$ sls shell -S bash