FunctionHub-cli

Introduction

FunctionHub is the package manager for general, reusable Functions for cloud vendors like AWS, Google cloud and Azure. It is child of Cloudstash, a broader cloud based storage unit for functions and artifacts.

The FunctionHub-cli provides interaction with FunctionHub for storing and accessing reusable functions.

FunctionHub allows you to:

  • Create Users

  • Create public and private repositories

  • Upload Functions

  • Browse Functions

Create your user at CloudStash and get started


Business Purpose

The FunctionHub is a fully serverless artifact Manager for cheap and scalable storage of reuasble Functions.


Technical details

The FunctionHub client provides an user friendly way of interacting with the FunctionHub API.

The following figure shows the architecture of FunctionHub.

_images/FunctionHub_Arch.png

Quickstart

System Requirements

This README is currently tailored to Unix-like systems (MacOS, Linux).

For FunctionHub developers and users, the following additional software must be installed:

  • pip3 - Python3 standard package manager

Download the Function Hub client

  1. pip3 install functionhub

make changes and verify with the local cli

User account & Navigation

  1. Create a user account on FunctionHub

  2. Store the deploy-token given to you

  3. Create a new repository

  4. Navigate through the website to discover different options for functions

Pushing functions to FunctionHub using CLI

  1. Create a project. fuhub create exampleProject

  2. Move to the project directory. cd exampleProject

  3. Set the configuration file config.ini with your parameters. (example of config.ini can be found in test directory)

[REPOSITORY]
org =
repository =

[FUNCTION]
name =
version =
description =

[RUNTIME]
provider =
runtime =
handler =
  1. Create a zipped folder containing your function and libraries if necessary.

  2. Upload the function to FunctionHub. fuhub --token <deploy-token> upload myfunction.zip

Retreiving Functions from FunctionHub

  1. Browse FunctionHub and find the Function of your choice.

  2. Copy the ArtifacId.

  3. In terminal do curl -o function.zip https://cloudstash.io/artifact_download/*ArtifactId*

Contribution

We encourage contributions from everyone who finds interest in this project!

For any ideas, bugs or new features use our issue tracker at our GitHub project.

When contributing, fork the repository and commit work through pull requests.

Read the roadmap

For local development do:

`` python3 -m venv venv `` `` pip install –editable ``

When deploying a new version through the Jenkins CI make sure to add [deploy] keyword in the commit message


Contact


Acknowledgements

This work is being supported by the European Union’s Horizon 2020 research and innovation programme (grant no. 825040, RADON).