@slsplus/serverless-http
v0.2.2
Published
Serverless HTTP Proxy
Downloads
8
Readme
Serverless HTTP Proxy
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,
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';
async function start() {
const proxy = new ServerlessProxy({
requestListener: app,
});
const runtime = new TencentRuntime({
proxy,
});
// start http server
await proxy.start();
// post ready -- finish initialization
await runtime.ready();
console.log(`Initialize success`);
try {
while (true) {
await runtime.run();
}
} catch (e) {
await runtime.error({
statusCode: 501,
body: `Code Error: ${e}`,
headers: {},
isBase64Encoded: false,
});
}
}
start();
Here is the example custom-runtime.
More information about Tencent Cloud Custom Runtime.
License
MIT License
Copyright (c) 2020 Serverless Plus