JS Transpiler to port your code to Google, Amazon & IBM FaaS
➡️ Your entry point must be in index.js
and be default-exported, for instance module.exports = (event) => { /* ... */ }
➡️ It will receive exactly one argument, the invocation payload (commonly called event
)
➡️ If your code returns something, it must be an Object
, or a Promise
thereof
Requires NodeJS >= 10.2.0
npm i js2faas -g
$ js2faas OPTIONS...
Options
--name FUNCTIONNAME
--runtime 'nodejs8' | 'nodejs10' | 'latest'
--aws-role AWSROLEARN
js2faas
will transpile your JS code it finds in the current directory, and put it into the newly created folders amazon
, google
and ibm
, respectively. NPM dependencies are supported.
Make sure you have installed the respective CLI tools (aws
, gcloud
, ibm
) and have configured them. Otherwise the scripts will not know where to deploy to. Credentials are not baked into the folders.
cd amazon
npm run create # afterwards, npm run update
cd google
npm run deploy
cd ibm
npm run deploy
├── index.js
├── node_modules
├── package.json
└── package-lock.json
Let's look into our index.js
:
// default-export your entry point
module.exports = (event) => {
console.log(`Data passed: ${ event }`);
return { a: 1, b: 2 }
}
Run js2faas
js2faas
--name newFuncName
--runtime nodejs10
--aws-role xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
├── index.js
├── node_modules
├── package.json
├── package-lock.json
|
├── amazon
├── google
└── ibm
Deploy the function
cd amazon
sh deploy.sh # afterwards, sh update.sh
# --
cd google
sh deploy.sh
# --
cd ibm
sh deploy.sh
Apache 2.0