United Income at Capital One created this project with the intention of it helping us with Serverless Framework development and debugging. We have stopped providing updates to this project and archived it as of September 30th, 2021.
Serverless Shell
A Serverless v1.x plugin to drop to a local shell with your environment
variables from serverless.yml
.
Install
npm install --save serverless-shell
Add the plugin and set some env vars in your serverless.yml
:
provider: name: aws environment: SOME_VAR: foobarplugins: - serverless-shell
Usage
Example in a python project
$ serverless shellServerless: Spawning python3.6...Python 3.6.1 (default, Mar 22 2017, 06:17:05) [GCC 6.3.0 20170321] on linuxType "help", "copyright", "credits" or "license" for more information.>>> import os>>> os.environ['SOME_VAR']'foobar'
and in a NodeJS project:
$ serverless shellServerless: Spawning node...> process.env.SHELL'foobar'
Per function & stage specific env vars
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
Custom shell (babel) support
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.
Example:
custom: shellBinary: babel-node
This feature can also be activated by a CLI switch:
$ sls shell -S bash