Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mhausenblas/funcnstein
a multi-platform tool for managing functions
https://github.com/mhausenblas/funcnstein
aws-lambda cli faas knative kubeless openfaas openwhisk serverless
Last synced: 9 days ago
JSON representation
a multi-platform tool for managing functions
- Host: GitHub
- URL: https://github.com/mhausenblas/funcnstein
- Owner: mhausenblas
- License: apache-2.0
- Created: 2018-08-06T13:06:46.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-08-06T15:24:03.000Z (over 6 years ago)
- Last Synced: 2024-11-25T23:42:25.786Z (2 months ago)
- Topics: aws-lambda, cli, faas, knative, kubeless, openfaas, openwhisk, serverless
- Size: 385 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# funcnstein
![funcnstein logo](img/funcnstein-logo.png)
_Kudos to Ashley McNamara, Renee French, and Mat Ryer for the logo, via [gopherize.me](https://gopherize.me/)._
---
Are you into serverless? Using, for example, [AWS Lambda](https://aws.amazon.com/lambda/) or [knative](https://github.com/knative/serving) or [Apache OpenWhisk](https://openwhisk.apache.org/)? When you're building a non-trivial app based on functions you potentially end up with dozens or hundreds of functions.
How do you manage them? Know what is running, what the dependencies between functions are? Maybe you're manually updating a spreadsheet or perhaps you have put together a nice little shell script that queries the state?
I believe we can do better, better as in great UX, ease of use, and powerful set of operations, but focused on the task of managing functions from an operational point of view. So, you would still use Serverless, CloudFormation, Terraform, or your own tooling to deploy, monitor, or debug your functions.
So this is what the idea of `funcnstein` is: a multi-platform tool for managing functions.
## Exemplary usage
Sample interactions follow below—note, no matter if you're using the CLI tool against Lambda or OpenFaaS or kubeless or whatever target, the UX is always the same.
### Getting an overview of what is running
```bash
$ functl get
NAME STATUS INVOCATIONS AGE
convertimg Running 21k 42d
preprocess Running 29k 42d
limitchecker Running 40k 30d
compliance Running 8k 18d
myfirstgofunction Running 300 10m
```### Examining a specific function
```bash
$ functl describe convertimg
Environment: AWS Lambda
Project: A paying customer, actually
State: Running (since 2018-06-25)
Language: Node.js
Invocations: 20988
Triggers: API Gateway, S3
Labels: owner=mshelley
```### Resolving dependencies
```bash
$ functl resolve convertimg
Called by:
- preprocess
Calls:
- limitchecker
- compliance
```### Organizing stuff
```bash
$ functl label convertimg stage=prod
Labels: owner=mshelley, stage=prod
```### Advanced queries
```bash
$ functl get --project='*paying*' --selector='owner=mshelley' --invocations='>20k'
NAME STATUS INVOCATIONS AGE
convertimg Running 21k 42d
```## FAQ
Q: How is `functl` pronounced?
A: fun-kuddle … because you can't control fun