Giter Club home page Giter Club logo

multicloud's Introduction

Serverless Multicloud Library

The Serverless @multicloud library provides an easy way to build Serverless handlers in NodeJS using a cloud agnostic library that can then be deployed to supported cloud providers.

In addition to a normalized API the @multicloud library supports reusable middleware pipeline similar to the Express framework

Supported Cloud Providers

The following is a list of the currently support cloud providers:

Microsoft Azure (@multicloud/sls-azure)

Build Status

The Azure package contains Azure specific implementations of core components. See Azure readme for additional information

Amazon Web Services (@multicloud/sls-aws)

Build Status

The AWS package contains AWS specific implementations of core components. See AWS readme for additional information

Dependencies

Multicloud Core (@multicloud/sls-core)

Build Status

The Core package is required for all installations. It contains all base implementations as well as the core framework runtime. See Core readme for additional information

Installation

Serverless @multicloud library for Node can be installed via NPM

# Installs core components as as well as run-time dependencies for Azure & AWS
npm install @multicloud/sls-core @multicloud/sls-azure @multicloud/sls-aws --save

Example

const { App } = require("@multicloud/sls-core");
const { AzureModule } = require("@multicloud/sls-azure");
const { AwsModule } = require("@multicloud/sls-aws");
const app = new App(new AzureModule(), new AwsModule());

module.exports.handler = app.use([], async (context) => {
  const { req } = context;
  const name = req.query.get("name");

  if (name) {
    context.send(`Hello ${name}`, 200);
  }
  else {
    context.send("Please pass a name on the query string or in the request body", 400);
  }
});

Contributing

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

Welcome, and thanks in advance for your help! Please follow these simple guidelines ๐Ÿ‘

Licensing

Serverless is licensed under the MIT License.

All files located in the node_modules and external directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms in the MIT License.

multicloud's People

Contributors

ahemavathy avatar lgaspari avatar marianodmartin avatar nahuelgrcsw avatar pic123 avatar pjlittle avatar sergiohornik avatar tbarlow12 avatar wbreza avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

multicloud's Issues

Event names are not normalized across Azure blob and AWS S3 events

Event names are not normalized across Azure blob and AWS S3

Description

Event triggers correctly fire for both Azure blob and AWS s3 when blobs are created & updated. However the event names are not in a normalized format so it is difficult to write a truly multicloud handler in these use cases.

  • What went wrong? Difficult to write multicloud handler using event names
  • What did you expect should have happened? Event names should be normalized across cloud providers
  • What was the config you used? N/A
  • What stacktrace or error message from your provider did you see? N/A

Similar or dependent issues: N/A

Additional Data

N/A

Typings limit appending new properties or reading new properties from context

Typings limit appending new properties or reading new properties from context

Description

  • What went wrong?
    Unable to use dot notation to read/write extended properties onto CloudContext
  • What did you expect should have happened?
    New properties should be allowed to be read/written
  • What was the config you used?
  • What stacktrace or error message from your provider did you see?

Similar or dependent issues:

N/A

Additional Data

N/A

Allow global registration of middleware components in App

This is a Feature Proposal

Today you need to pass in the array of middleware components to execute for each pipeline. Consider adding support to specifiy the middleware components when defining the App instance.

By default handlers should then execute the app level middlewares and registering additional middleware comonents should be option in the app.use(...) call.

If new middleware components are registered in the handler they should be called after app registered middlewares.

Description

  • What is the use case that should be solved. The more detail you describe this in the easier it is to understand for us.
    Reduces the boilerplate of registering multicloud handlers

  • If there is additional config how would it look

Similar or dependent issues:

  • #12345

Project status?

I'm considering this for my company's move to multi-cloud. However, I don't see any activity in the project for over a year. Am I missing something, or did the project somehow reach maturity already? Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.