UNPKG

binaris

Version:

Binaris SDK & CLI

148 lines (102 loc) 3.15 kB
# Binaris **[Binaris](https://www.binaris.com/)** is a fast, low-latency FaaS (Function as a Service) platform. With our performance and scale, you can run real production workloads on Node.js. ## Getting up and running in seconds 1. Install using npm ```bash npm install -g binaris ``` 2. Setup Binaris credentials - If you already have an account it's as simple as exporting your existing credentials - Otherwise head over to [Binaris](https://www.binaris.com/) to sign up 3. Generate a Binaris template function ```bash # generates simple NodeJS template function bn create node8 hellofunc ``` 4. Deploy a function ```bash # makes the function available via Binaris cloud bn deploy hellofunc ``` 5. Invoke a function ```bash # calls the function endpoint via https bn invoke hellofunc ``` 6. Make changes to a function ```bash git diff --- a/function.js +++ b/function.js - console.log('Hello World'); + console.log('Hello Binaris'); # redeploy the function bn deploy hellofunc ``` 7. Get logs for a function ```bash bn logs hellofunc ``` It's as simple as that. ## Running without Node & NPM There's a docker version of the Binaris CLI, published on Dockerhub as [binaris/bn](https://hub.docker.com/r/binaris/bn/). ### Usage To run in the current directory: ```bash docker run --rm -v $(pwd):/src binaris/bn --help ``` You'll want to forward your API key. So add `-e BINARIS_API_KEY` like so: ```bash docker run --rm -e BINARIS_API_KEY -v $(pwd):/src binaris/bn ``` For convenience, you can create an alias for this in bash: ```bash alias bn='docker run --rm -e BINARIS_API_KEY -v $(pwd):/src binaris/bn' bn create node8 hello bn deploy hello bn invoke hello ``` ## Storing secrets and other configuration parameters You can pass configuration parameters to functions as part of the `deploy` command. These parameters will be available to the function during runtime as environment variables. All parameters are encrypted at rest and in-transit, which makes them the preferred way to store API keys, passwords, etc. To pass parameters into a function, add an `env:` section to `binaris.yml`, like so: ```yaml functions: hello: file: function.js entrypoint: handler runtime: node8 env: SOME_API_KEY: XXXXXXXXXXX ``` If a parameter is sensitive and you don't want to commit it to SCM, you can leave out the value in `binaris.yml`: ```yaml functions: hello: file: function.js entrypoint: handler runtime: node8 env: SOME_API_KEY: ``` And pass it as an environment variable to the `deploy` command: You can then access these parameters as environment variables: `function.js` ```js exports.handler = () => { const apiKey = process.env.SOME_API_KEY; // ... } ``` Or in Python: ```python import os def handler(body, req): apiKey = os.environ['SOME_API_KEY'] # ... ``` Only string values are supported in the `env:` section. ```bash SOME_API_KEY=XXXXXXX bn deploy hello ``` Learn more about the Binaris platform at the [developer resources](https://dev.binaris.com/) page. This project is licensed under the terms of the MIT license