Skip to content

serverless-plus/serverless-http

Repository files navigation

Serverless HTTP Proxy

npm NPM downloads Status semantic-release

Serverless HTTP Proxy.

Installation

$ npm i @slsplus/serverless-http --save

Usage

Start proxy by UDS(UNIX Domain Socket)

import http from 'http';
import express from 'express';
import { ServerlessProxy } from '@slsplus/serverless-http';

const app = express();

app.get('/', (req, res) => {
  res.send('Hello Serverless Express');
});

const proxy = new ServerlessProxy({
  requestListener: app,
});

// export serverless handler function
export.handler = async (event, context) => {
  await proxy.start()
  const res = await proxy.getResponse(event);
  return res;
}

Here is the example nodejs-runtime.

Start proxy by child process

Start proxy server by child proces, set useChildProcess to true, like below:

import http from 'http';
import express from 'express';
import { ServerlessProxy } from '@slsplus/serverless-http';

const app = express();

app.get('/', (req, res) => {
  res.send('Hello Serverless Express');
});

const proxy = new ServerlessProxy({
  requestListener: app,
  // specify using child process to start proxy server
  useChildProcess: true,
});

// export serverless handler function
export.handler = async (event, context) => {
  await proxy.start()
  const res = await proxy.getResponse(event);
  return res;
}

Using with Custom Runtime for Tencent Cloud SCF

import { ServerlessProxy, TencentRuntime } from '@slsplus/serverless-http';
import app from './app';


const proxy = new ServerlessProxy({
  requestListener: app,
});
const runtime = new TencentRuntime({
  proxy,
});

runtime.startLoop();

Here is the example custom-runtime.

More information about Tencent Cloud Custom Runtime.

License

MIT License

Copyright (c) 2020 Serverless Plus