backstage-functions
v0.1.0
Published
Remote serverless code executor
Downloads
56
Readme
Backstage Functions
Backstage Functions is an Open Source Serverless Plataform able to store and execute JavaScript code.
Run local via Docker
Requirements
- Docker 1.12+
- Docker compose 1.8+
Download docker-compose.yml
mkdir functions
cd functions
curl 'https://raw.githubusercontent.com/backstage/functions/master/docker-compose.yml' > docker-compose.ymlRun
docker-compose upRun local without Docker
Requirements
- Redis 3.0+
- NodeJS 6.6.0
Download the project
git clone https://github.com/backstage/functions.git
cd functionsSetup
make setupRun
make runHow to use
Create function
function main(req, res) {
const name = (req.body && req.body.name) || "World"
res.send({ say: `Hello ${name}!` })
}Send the function as curl to /functions/:namespace/:name
curl -i -XPUT http://localhost:8100/functions/example/hello-world \
-H 'content-type: application/json' \
-d '{"code":"function main(req, res) {\n const name = (req.body && req.body.name) || \"World\"\n res.send({ say: `Hello ${name}!` })\n}\n"}'Run the function send a PUT request to /functions/:namespace/:name/run:
curl -i -H 'content-type: application/json' -XPUT http://localhost:8100/functions/example/hello-world/runResults in something like:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 22
ETag: W/"16-soBGetwJPBLt8CqWpBQu+A"
Date: Tue, 11 Oct 2016 16:51:04 GMT
Connection: keep-alive
{"say":"Hello World!"}If one pass an object at the request payload with name the payload is executed
curl -i -XPUT http://localhost:8100/functions/example/hello-world/run \
-H 'content-type: application/json' \
-d '{"name": "Pedro"}'Results in something like:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 22
ETag: W/"16-Ino2/umXaZ3xVEhoqyS8aA"
Date: Tue, 11 Oct 2016 17:13:11 GMT
Connection: keep-alive
{"say":"Hello Pedro!"}
