cfa

0.0.4 • Public • Published

CFA - Cloud Function Abstraction

CFA is a suite of tools to help you build cloud functions that run on any provider. It is designed to be a lighter alternative to Serverless and emphasize uniform development convention.

Currently under development.

Installing

Install the cfa CLI tool:

npm install -g cfa

Providers

AWS

IAM requirements

To deploy, your IAM profile must be able to:

[
  "iam:GetPolicy",
  "iam:GetPolicyVersion",
  "iam:GetRolePolicy",
  "iam:ListRoles",
  "iam:ListRolePolicies",
  "iam:ListAttachedRolePolicies",
  "iam:AttachRolePolicy",
  "lambda:CreateFunction",
  "lambda:GetFunction",
  "lambda:GetFunctionConfiguration",
  "lambda:GetPolicy",
  "lambda:GetAlias",
  "lambda:ListVersionsByFunction",
  "lambda:ListAliases"
  "lambda:UpdateFunctionCode"
]
If you want to remove functions via cfa
[
  "lambda:DeleteFunction",
  "lambda:DeleteAlias",
]

Google

todo

Usage

Creating a function

cfa create <name>

Test a function

cfa test [input]

Deploy a function

cfa deploy [environment]

Modules

The cfa cli tool runs on top of commander. You can create your own modules to implement new commands during development to enforce your own workflow for developers.

In custom modules, you need an entry point that exports the following:

module.exports = {
 
  //
  // Put in npm dependencies here.
  //
 
  dependencies: ["meteor-mongodb-collections@0.0.10"], 
 
  async onAdd() {
 
    //
    // Run code after adding this module for the first time
    //
 
    return;
 
  },
 
  onRun(program) {
 
    //
    // Run custom code on the CLI program to add your own commands
    //
 
    program
      .command("add-collection <collection>")
      .description("[cfa-mongo] Add collection <collection> to function")
      .action(addCollection);
 
  }
 
};

Contribute

Want to contribute? Feel free to! Pull requests, issues and comments are welcome.

Readme

Keywords

none

Package Sidebar

Install

npm i cfa

Weekly Downloads

0

Version

0.0.4

License

ISC

Unpacked Size

48.6 kB

Total Files

38

Last publish

Collaborators

  • juho