Skip to content
This repository has been archived by the owner on Oct 28, 2021. It is now read-only.

capitalone/serverless-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

serverless npm

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: foobar
plugins:
  - serverless-shell

Usage

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'

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

About

⚡️🐚 Serverless Shell with environment variables plugin

Resources

License

Stars

Watchers

Forks

Packages

No packages published