node-red-contrib-fission v0.2.0
node-red-contrib-fission
Node Red extension for Fission with function invocation/management and other commands support.
Demos
Invoke Hello World Function:
In this demo, we create a simple inject
node to inject messages manually,
a debug
node to output messages,
and a fission function
node to invoke hello
in fission via fission function endpoint.
The params are packed and sent to the fission function, the result is parsed and then passed
to the next node in the flow.
Create a web app in 30 minutes
In this demo, we create 12 flows which consist of 16 functions and 62 nodes.
It required 3rd-party services (Minio, Redis, Rethinkdb) managed by service-catalog
,
adapters to translate events in 3rd-party services into messages in the flow charts,
and some standard functions provided by us (e.g. image processing).
Monitor the flow charts online In this demo, we are running the web app backend using fission and nodered. An admin ui is using the web app Http API to pull the images and client data. 100 clients are uploading images and reporting status at different rate. We can see every invocation on the flows we composed in the last demo. The detail metrics of each fission function are displayed in charts.
Installation
Optional Perquisite
Metrics
You need to enable the metrics feature in this PR
and expose the prometheus service prometheus
on port 9090
in fission-metrics
namespace.
Auto scaling
You need to enable the auto scaling feature in this PR
Deploy Node-red with other fission services
# use the official node red docker image
$ kubectl create -f nodered.yaml
Install fission nodes from Node-red palette
Open the node red ui on nodeport 31318
,
search for node-red-contrib-fission
in node red palette and install.
Available nodes
- fission-invocation: node which invokes and manages fission functions
- fission-params-validate: node which validates the input messages base on rules
WIP nodes
The following node requires standard fission functions or require additional modification to fission:
- fission-httptrigger: node which manages fission http triggers, and receive http events from fission
- fission-timetrigger: node which manages fission time triggers, and receive cron events from fission
- fission-natstrigger: node which manages fission mq triggers, and receive mq events from fission or publish mq events to fission
- fission-minio-adapters: not released
- fission-redis-adapters: not released
- fission-rethinkdb-adapters: not released
Dev branch
k8s
branch contains all the nodes I am working on. If you are interested, check that out.