1.10.5-beta.0 • Published 4 years ago

bfast-faas v1.10.5-beta.0

Weekly downloads
69
License
-
Repository
-
Last release
4 years ago

BFast::Cloud::Functions

Serverless function engine for NodeJS on top of ExpressJS and Socket.IO.

Get Started Manually

When you use BFast::Cloud::Function you use this component automatically but if you want to use it manually for your project here is the step to follow.

1. Install required dependencies using npm

  • bfast-faas
john@pc:~/Desktop/my-workspace$ npm install bfast-faas --save
  • bfastnode
john@pc:~/Desktop/my-workspace$ npm install bfastnode --save

2. Create a functions folder

Create any folder in your working space

john@pc:~/Desktop/my-workspace$ mkdir functions

3. Create a functions file ( e.g example.js )

Create a file of any name in functions folder you already create from step 2 and past the following code

const {BFast} = require('bfastnode');

module.exports.myHelloFunction = BFast.functions().onHttpRequest('/hello', (request, response)=>{
    response.status(200).send('Hello, World!');
});

4. Start BfastFunctions engine

create index.js file in your root workspace and start the Faas server like the following

const {BfastFunctions} = require('bfast-faas');
const faasServer = new BfastFunctions({
    port: '3000',
    functionsConfig: {
        functionsDirPath: './functions',
    }
});

faasServer.start().catch(console.log);

then to start listening run ~$ node index.js

Full BfastFunctions engine option is as follows

 /**
     *
     * @param port {string} a port http server to listen to [required]
     * @param gitCloneUrl {string} a remote git repository [required]
     * @param gitUsername {string} a git username [required]
     * @param gitToken {string} personal access token ( if a git repository is private ) [optional, default is null]
     * @param appId {string} bfast::cloud application id [optional, default is null]
     * @param projectId {string} bfast::cloud projectId [optional, default is null]
     * @param functionsConfig {{
        functionsDirPath: string, 
        bfastJsonPath: string
    }} if functionsDirPath is specified bfast::functions engine will not use a git clone url [optional, default is null]
     * @param functionsController {BfastFunctionsController} your implementation o bfast functions controller or null [optional, default is null]
     */

  new BfastFunctions({
    port: "3000",
    gitCloneUrl: 'https://your-repo.git',
    gitUsername: 'git username',
    gitToken: 'your token',
    appId: 'any',
    projectId: 'any',
    functionsConfig: {
        functionsDirPath: '/path/to/your-functions-folder',
        bfastJsonPath: '/path/to/bfast-json-file'
    },
    functionsController: new MyCustomController()
});

bfast.json file is a JSON file contain configurations of for bfast functions engine. Its example is;

{
  "ignore": ["**/node_modules/**"]
}