Skip to content
This repository has been archived by the owner on Dec 9, 2024. It is now read-only.
/ multicloud Public archive

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.

License

Notifications You must be signed in to change notification settings

serverless/multicloud

Repository files navigation

📦 Archived - This repository is archived and preserved for reference only. No updates, issues, or pull requests will be accepted. If you have questions, please reach out to our support team.


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.

About

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.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published