/multicloud

The serverless @multicloud library provides an easy way to write your serverless handlers 1 time and deploy them to multiple cloud providers include Azure & AWS.

Primary LanguageTypeScriptMIT LicenseMIT

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.