Skip to content

Run multiple serverless api or db instance under 1 URL for local development purposes

License

Notifications You must be signed in to change notification settings

TheSmartMonkey/sls-multi-offline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sls-multi-offline

Run multiple serverless api or db instance under 1 URL for local development purposes

This repo is inspired from sls-multi-gateways

sls-multi-gateways is a tool that allows you to run multiple api gateways under one domain for local development purposes.

Here is a walkthrough article on medium

Getting started

Installation

sls-multi-offline needs to be installed globally using the following command:

npm install -g sls-multi-offline

Config

After installing sls-multi-offline, cd into your project directory

cd [project-directory]

Create a offline config file

touch offline.yml

Inside your sls-multi-offline config file add the services you would like to run

port: [port the proxy will run on - (optional: default is 3100)]
stage: [stage the proxy will run on - (optional: default is dev)]
services:
  - name: [name of the service]
    path: [proxy path to the service]
    source: [path to the serverless.yml file belong to that service]
    type: [api or db]
  - name: [name of the service 2]
    path: [proxy path to the service 2]
    source: [path to the serverless.yml file belong to that service]
    type: [api or db]

Exemple :

port: 3100
services:
  - name: posts
    path: posts
    source: ./sample/posts
    type: api
  - name: users
    path: users
    source: ./sample/users
    type: api
  - name: db
    path: db
    source: ./sample/db
    type: db

All paths by default are mapped to localhost:[port]/[path].

Usage

To run sls-multi-offline, execute the following cmd in the directory with the config file

sls-multi-offline

For contributors

Debug :

npm run dev

create a post :

curl -X POST -H "Content-Type:application/json" http://localhost:3100/dev/create-post --data '{ "text": "Learn Serverless" }'

create a user :

curl -X POST -H "Content-Type:application/json" http://localhost:3101/dev/create-user --data '{ "text": "Learn Serverless" }'